Back to questions
Aston
Junior — Middle
57
В чем заключается назначение аннотации Qualifier в фреймворке Spring для внедрения зависимостей?
Companies where asked
Технодиасофт
Answer from AI
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".