Итак, читая документацию @Lookup
, она говорит, что она не будет работать с фабричными методами в классах @configuration
, и я читал, что весенние аннотации не будут обрабатываться всякий раз, когда мы используем новую реализацию. Поэтому я попытался, и аннотации @autowired
работают на @Bean
определенных экземплярах:
@Configuration
@ComponentScan("autowired_qualifier_resource")
public class Application {
@Bean(name="firstBean")
@Qualifier("qualifierBean")
TestBeanInterface myBean(){
return new TestBean1();
}
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Application.class);
System.out.println(context.getBean("firstBean"));
}
}
public class TestBean1 implements TestBeanInterface {
private BeanInterface bean;
@Autowired
public TestBean1(){
System.out.println("TestBean1");
}
@Autowired
public void setBean( BeanInterface bean){
System.out.println("SetBean :" + bean);
this.bean = bean;
}
}
Вызывается метод setBean
, который выдает ошибку наличия более одного объекта для одного типа. Так почему же метод поиска не работает на @Bean
определенных классах, когда другие аннотации работают?