Назад к вопросам
Иннотех
Junior — Middle
68
Какие методы ты знаешь для выбора подходящего кандидата при наличии нескольких вариантов внедрения зависимости в Bean?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
При наличии нескольких кандидатов для внедрения зависимости в Bean в Spring можно использовать следующие методы выбора подходящего варианта:
-
@Primary — помечает один из бинов как основной, который будет внедряться по умолчанию.
-
@Qualifier — позволяет явно указать имя или квалификатор бина, который нужно внедрить.
-
Именование бинов — если не использовать аннотации, Spring пытается сопоставить по имени поля и имени бина.
-
@Resource(name = "beanName") — из JSR-250, внедряет бин по имени.
-
Использование профилей (@Profile) — позволяет активировать определённые бины в зависимости от профиля приложения.
Пример с @Qualifier:
@Component
public class ServiceA implements MyService {}
@Component
public class ServiceB implements MyService {}
@Component
public class Client {
private final MyService myService;
public Client(@Qualifier("serviceB") MyService myService) {
this.myService = myService;
}
}
Таким образом, можно явно указать, какой бин внедрять, если их несколько.