Spring @Bean (name = "name") против @Bean @Qualifier ("name") - PullRequest
1 голос
/ 09 июля 2020

Есть ли какие-либо различия между следующими двумя объявлениями bean-компонентов?

 @Bean(name = "bean1")
 public A getA() {
     return new A();
 }


 @Bean
 @Qualifier("bean1")
 public A getA() {
     return new A();
 }

Оба могут быть автоматически подключены с помощью @Qualifier

 @Autowire
 public void test(@Qualifier("bean1") A a) {
     ...
 }

Ответы [ 2 ]

1 голос
/ 10 июля 2020

С value() вам не нужно указывать имя атрибута, например @Qualifier("bean1"). Атрибут name() ссылается на то же значение, что и value() из-за пользовательской аннотации @AliasFor(..) из Spring, поэтому это просто разные имена с одинаковым поведением.

1 голос
/ 09 июля 2020

Первая часть в основном такая же, вторая часть - это то, что вам в основном нужно, когда существуют два или более bean-компонентов одного типа. Первая часть - это просто предпочтения, которые могут быть у человека.

...