Junior — Middle
78
Какие последствия возникают, если запустить два бина одинакового типа в контейнере?
Companies where asked
Answer from AI
sobes.tech AI
Если в Spring-контейнере объявлены два бина одного типа без дополнительной квалификации, при попытке автосвязывания (например, через @Autowired) возникнет ошибка из-за неоднозначности — контейнер не сможет определить, какой бин внедрять.
Чтобы избежать этой ситуации, можно:
- Использовать аннотацию @Qualifier для указания конкретного имени бина.
- Назначить один из бинов как @Primary, чтобы он выбирался по умолчанию.
- Внедрять коллекцию бинов (например, List или Map), чтобы получить все экземпляры данного типа.
Пример с @Qualifier:
@Autowired
@Qualifier("beanName")
private MyService myService;
Таким образом, наличие двух бинов одного типа требует явного указания, какой из них использовать, иначе приложение не запустится из-за ошибки конфигурации.