Встречается на собеседованиях • сегодня
Что будет, если инжектить по полю интерфейс, у которого есть две реализации в Spring
Spring выбросит исключение NoUniqueBeanDefinitionException, так как не сможет определить, какую именно реализацию инжектить. Для решения проблемы нужно:
- Использовать
@Qualifierдля указания конкретного бина:
java
@Autowired
@Qualifier("firstImpl")
private MyInterface myService;- Пометить одну из реализаций
@Primary- она будет выбрана по умолчанию:
java
@Primary
@Component
public class FirstImpl implements MyInterface {...}-
Использовать
@Resource(name = "beanName")вместо@Autowired -
Создать фабричный метод с
@Bean, возвращающий нужную реализацию

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