Предисловие
Существует много способов вводить экземпляры весной, но из -за различного порядка инициализации метод инъекции, основанный на аннотации, подвержен невыполнительному введению правильно.
В этой статье будет представлен динамически основанный способ извлечения бобов, управляемых пружинами, в реальные проекты. Я не скажу многое ниже, давайте посмотрим на подробное введение вместе.
1. Включите экземпляры на основе маркировки
Когда фасоль инициализируется, объект, от которого он зависит, должен быть инициализирован. Если инъекционный объект инициализируется позже, чем текущий объект, инъекционный объект будет нулевым.
1.1 @autowired
Загрузите весенние бобы по типу. По умолчанию его бобы должны существовать. Если его фасоль нуль, его необходимое свойство может быть установлено на ложь. Для получения конкретной информации, пожалуйста, обратитесь к исходному коду:
@Target ({elementType.constructor, elementtype.method, elementtype.parameter, elementtype.field, elementtype.annotation_type})@artentention (artententypolicy.runtime)@DocumentedPublic@Autowowired {/*** объявляет, требуется ли анимированная зависимость. *По умолчанию {@code true}.*/Boolean require () по умолчанию true;}Если вам нужно вводить бобы на основе команды, вам нужно использовать @qualifier, чтобы пометить имя. Пример кода заключается в следующем:
@Autwired@Qualifier ("beanname") private beantype beanobj;Применение приложения: выше переменные, методы и конструкторы сеттера.
Источник: Spring Framework
1.2 @Inject
Предоставляется javax.inject.inject, он автоматически собирается на основе типа. Если вам нужно перенести в соответствии с именем, вам нужно использовать @named в сочетании с ним. Это использование очень похоже на @autowired, предоставленное Spring Framework.
Применение применения: переменные, методы сеттера, конструкторы
Источник: JSR330 Specification Package расширения Javax
Пример кода:
@Inject@uthere ("beanname") частный бобовый бон;1.3 @Resource
По умолчанию внедрение сборки по имени. Только когда боб, соответствующий имени, не может быть найдена, будет внедрение по типу. Он предоставляется после JDK 1.6.
Применение приложения: может применяться к переменным и методам сеттера
Источник: предоставлен после JDK 1.6
Пример использования кода:
@Resource (name = "mybeanName") частный бобовый бон;
2. Метод динамического впрыска
Идея: используйте ApplicationContextAware, чтобы получить ссылку на ApplicationContext, а затем динамически получить объект на основе ApplicationContext.
Код реализации выглядит следующим образом:
@ComponentPublic Class SpringContextUtil реализует ApplicationContextAware {// Среда для приложения Spring Context Comtense Crivate Static ApplicateContext ApplicationContext;/** Реализовать метод обращения интерфейса ApplicationContextAwar ApplicationContext*/public Static ApplicationContext getApplicationContext () {return ApplicationContext;}/*** Get Object ** @param name*@return объект*@Throws beanSexception*/public Static Object getBean (String name) Throws BeanSexception {return applicationContext.getbean (name);}}После этого вы можете динамически получить необходимые экземпляры бобов в коде:
Beantype Bean = SpringContextutil.getBean ("Beanname")Разве это не очень просто в использовании?
Суммировать
Здесь мы суммируем различные способы введения бобов в весну, каждый из которых имеет свои преимущества и недостатки, и вы можете использовать их.
Хорошо, вышеупомянутое содержимое этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.