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

В чем заключается назначение аннотации Qualifier в фреймворке Spring для внедрения зависимостей?

Компании, где спрашивали
AstonAston
Технодиасофт

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

sobes.tech AI

Аннотация @Qualifier в Spring используется для уточнения, какой именно бин должен быть внедрён, когда в контексте существует несколько кандидатов одного типа.

Например, если есть два бина одного интерфейса, то без @Qualifier Spring не сможет выбрать, какой внедрить, и выдаст ошибку. С помощью @Qualifier можно явно указать имя нужного бина.

Пример:

@Component("beanA")
public class BeanA implements MyService {}

@Component("beanB")
public class BeanB implements MyService {}

@Service
public class MyConsumer {
    private final MyService myService;

    public MyConsumer(@Qualifier("beanA") MyService myService) {
        this.myService = myService;
    }
}

Здесь @Qualifier("beanA") говорит Spring внедрить бин с именем "beanA".