Sobes.tech
Junior — Middle
98

Bean ичинде көзкарандоздукту ишке ашыруунун бир нече варианты болсо, ылайыктуу талапкерди тандоо үчүн кандай ыкмаларды билесиз?

Кайсыл жерде компаниялар сурады
ИннотехИннотех

AIден жооп

sobes.tech AI

При наличии нескольких кандидатов для внедрения зависимости в Bean в Spring можно использовать следующие методы выбора подходящего варианта:

  1. @Primary — помечает один из бинов как основной, который будет внедряться по умолчанию.

  2. @Qualifier — позволяет явно указать имя или квалификатор бина, который нужно внедрить.

  3. Именование бинов — если не использовать аннотации, Spring пытается сопоставить по имени поля и имени бина.

  4. @Resource(name = "beanName") — из JSR-250, внедряет бин по имени.

  5. Использование профилей (@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;
    }
}

Таким образом, можно явно указать, какой бин внедрять, если их несколько.