Sobes.tech
Junior — Middle
85

Co się stanie w aplikacji Spring, jeśli wstrzykniesz zależność przez pole interfejsu zaimplementowane przez kilka klas?

Firmy, w których zadano pytania
ITFB Group

Odpowiedź od AI

sobes.tech AI

Если в Spring внедрять зависимость через поле интерфейса, который реализуют несколько класса, и при этом не указать, какой именно бин использовать (например, с помощью @Qualifier), то при запуске приложения возникнет ошибка NoUniqueBeanDefinitionException. Это происходит потому, что Spring не сможет однозначно определить, какой из нескольких бинов нужно внедрить.

Чтобы избежать ошибки, нужно:

  • Использовать @Qualifier для указания конкретного бина.
  • Или внедрять коллекцию всех реализаций, например List<Interface>.

Пример с @Qualifier:

@Autowired
@Qualifier("specificBeanName")
private MyInterface myInterface;