Sobes.tech
Назад к вопросам
Junior — Middle
101

Каким образом выбрать конкретный Bean при наличии нескольких с идентичным именем в контексте Spring?

Компании, где спрашивали
ВТБВТБ

Ответ от нейросети

sobes.tech AI

В Spring, если в контексте есть несколько Bean с одинаковым именем (что обычно не рекомендуется, так как имена должны быть уникальны), чтобы выбрать конкретный Bean, можно использовать аннотацию @Qualifier вместе с @Autowired.

Пример:

@Component("myBean")
public class MyBeanImpl1 implements MyBeanInterface { ... }

@Component("myBean")
public class MyBeanImpl2 implements MyBeanInterface { ... }

// В месте внедрения
@Autowired
@Qualifier("myBeanImpl1")
private MyBeanInterface myBean;

Если имена совпадают, лучше задать уникальные имена или использовать аннотации @Primary для указания основного Bean. Также можно внедрять коллекцию всех Bean и выбирать нужный программно.