Spring trainee

Как работает @Autowired?

Ответ

Spring находит бин подходящего типа в контексте и подставляет. Если в контексте несколько бинов одного типа — нужна @Qualifier или @Primary, иначе ошибка. С Spring 4.3+ @Autowired на единственном конструкторе можно не писать.

Разбор: Базовый механизм @Autowired — поиск по типу; неоднозначность нескольких бинов одного типа разрешают @Qualifier или @Primary, иначе будет NoUniqueBeanDefinitionException. Ловушки: совпадение по имени используется лишь как вторичный критерий при неоднозначности, а не первично; @Autowired работает на полях, сеттерах и конструкторах (с 4.3 единственный конструктор не требует аннотации); и Spring никогда не выбирает «по алфавиту» или «последний» молча.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться