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

Что будет при инъекции бина через интерфейс, если интерфейс имеет две реализации

При инъекции бина через интерфейс с двумя реализациями Spring выбросит исключение NoUniqueBeanDefinitionException, так как не сможет определить, какую именно реализацию использовать.

Решение:

  1. Использовать @Qualifier для явного указания бина:
java
@Autowired
@Qualifier("firstImpl")
private MyInterface myBean;
  1. Пометить одну из реализаций @Primary, чтобы она использовалась по умолчанию:
java
@Primary
@Component
public class FirstImpl implements MyInterface { ... }
  1. Использовать @Resource(name = "beanName") для выбора конкретной реализации.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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