Встречается на 2% собеседований по Java
Какие знаешь способы решения проблемы нескольких кандидатов при внедрении зависимостей в Spring
В Spring есть несколько способов разрешения неоднозначности при внедрении зависимостей:
- @Primary - помечает бин как основной кандидат:
java
@Bean
@Primary
public MyService primaryService() {
return new PrimaryService();
}- @Qualifier - явное указание имени бина:
java
@Autowired
@Qualifier("secondaryService")
private MyService service;- Имя поля/параметра - если имя поля совпадает с именем бина:
java
@Autowired
private MyService primaryService; // Будет внедрен бин с именем primaryService- @Resource - JSR-250 аннотация для указания конкретного бина:
java
@Resource(name = "specificService")
private MyService service;- Списки/Мапы - инжект всех подходящих бинов:
java
@Autowired
private List<MyService> services;
@Autowired
private Map<String, MyService> serviceMap;Выбор способа зависит от контекста: @Primary для глобального приоритета, @Qualifier для точечного указания, списки/мапы когда нужны все реализации.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы