Junior — Middle
Spring tətbiqində, bir neçə sinif tərəfindən həyata keçirilmiş interfeys sahəsi vasitəsilə asılılıq inject edilərsə, nə baş verər?
sobes.tech Süni İntellekt
AI-dan cavab
Если в Spring внедрять зависимость через поле интерфейса, который реализуют несколько класса, и при этом не указать, какой именно бин использовать (например, с помощью @Qualifier), то при запуске приложения возникнет ошибка NoUniqueBeanDefinitionException. Это происходит потому, что Spring не сможет однозначно определить, какой из нескольких бинов нужно внедрить.
Чтобы избежать ошибки, нужно:
- Использовать
@Qualifierдля указания конкретного бина. - Или внедрять коллекцию всех реализаций, например
List<Interface>.
Пример с @Qualifier:
@Autowired
@Qualifier("specificBeanName")
private MyInterface myInterface;