Встречается на собеседованиях • сегодня

Как Spring понимает какой Bean нужно заинжектить

Spring определяет нужный бин для инъекции по типу (классу/интерфейсу) и, при необходимости, дополнительным квалификаторам. Основные механизмы:

  1. По типу - если в контексте ровно 1 бин подходящего типа:
java
@Autowired
private UserRepository userRepository;
  1. @Qualifier - если несколько бинов одного типа:
java
@Autowired
@Qualifier("jdbcUserRepository")
private UserRepository userRepository;
  1. Имя поля/параметра - если не указан @Qualifier, Spring попытается найти бин по имени поля/параметра.

  2. @Primary - бин с этой аннотацией будет выбран по умолчанию при неоднозначности.

  3. @Resource - инъекция по имени (JSR-250 стандарт).

Spring сначала ищет по типу, затем проверяет квалификаторы. Если подходящий бин не найден или найдено несколько без разрешения неоднозначности - будет исключение.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы