Junior — Middle
98
Bean ичинде көзкарандоздукту ишке ашыруунун бир нече варианты болсо, ылайыктуу талапкерди тандоо үчүн кандай ыкмаларды билесиз?
Кайсыл жерде компаниялар сурады
AIден жооп
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;
}
}
Таким образом, можно явно указать, какой бин внедрять, если их несколько.