@ Квалификационная аннотация используется для выбора одного компонента из нескольких доступных компонентов одного типа в контейнере пружины.
, когда вы аннотируете метод с помощью аннотации @Bean, по умолчанию создается бин, имя которого является именем того же метода.Так, например:
@Bean
public BeanA itsBeanA() {
return new BeanA();
}
@Bean(name = "specialBeanA")
public BeanA itsAgainBeanA() {
return new BeanA("specialConstructorParam");
}
@Bean
public BeanB beanB(@Autowired @Qualifier("specialBeanA") BeanA beanA) {
return new BeanB(beanA);
}
Первый метод создаст экземпляр BeanA с именем itsBeanA.Во-вторых, создаст экземпляр с именем «specialBeanA», так как мы предоставили здесь атрибут name.Там может быть сценарий, где вам нужно иметь несколько бинов одного и того же ТИПА (например, BeanA здесь).Это создаст неоднозначность для контейнера, боб которого будет использовать все те же типы, мы указываем @Qualifier с именем бина, который мы хотим.Я надеюсь, что это помогает.