Встречается на собеседованиях • сегодня
Какой бин выберет Spring при @Autowired интерфейсе, если есть две его реализации
Spring выберет бин, помеченный `@Primary`, если такой есть. Если нет, но есть только одна реализация - инжектит её. Если несколько реализаций без `@Primary`, будет исключение `NoUniqueBeanDefinitionException`.
Пример:
```java
interface Service {}
@Service
class ServiceImpl1 implements Service {}
@Service
class ServiceImpl2 implements Service {}
@Autowired // ошибка - 2 бина одного типа
private Service service;
```
Варианты решения:
1. Пометить одну реализацию `@Primary`
2. Использовать `@Qualifier("имя_бина")`
3. Инжектить все реализации через `List`
Лучшая практика - явно указывать нужный бин через `@Qualifier`.

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