Обложка канала

Библиотека Java разработчика

9291 @BookJava

Библиотека Java разработчика. Книги по программированию на Java.

Библиотека Java разработчика

3 года назад
Открыть в
Опишите поведение аннотации @Autowired 1. Контейнер определяет тип объекта для внедрения 2. Контейнер ищет бины в контексте(он же контейнер), которые соответствуют нужному типу 3. Если есть несколько кандидатов, и один из них помечен как @Primary, то внедряется он 4. Если используется аннотации @Autowire + Qualifier, то контейнер будет использовать информацию из @Qualifier, чтобы понять, какой компонент внедрять 5. В противном случае контейнер попытается внедрить компонент, основываясь на его имени или ID 6. Если ни один из способов не сработал, то будет выброшено исключение Контейнер обрабатывает DI с помощью AutowiredAnnotationBeanPostProcessor. В связи с этим, аннотация не может быть использована ни в одном BeanFactoryPP или BeanPP. Если внедряемый объект массив, коллекция, или map с дженериком, то Spring внедрит все бины подходящие по типу в этот массив(или другую структуру данных). В случае с map ключом будет имя бина. //параметр указывает, требуется ли DI @Authowired(required = true/false) 👉@BookJava