Spring注释应该在@configuration中的@Bean定义的类上工作吗?
因此,在阅读Spring注释应该在@configuration中的@Bean定义的类上工作吗?,spring,configuration,annotations,Spring,Configuration,Annotations,因此,在阅读@Lookup文档时,它说它在@configuration类中的工厂方法上不起作用,而且我读到每当我们使用新的实例化时,spring注释都不会被处理。 因此我尝试了,@autowired注释在@Bean定义的实例上工作: @Configuration @ComponentScan("autowired_qualifier_resource") public class Application { @Bean(name="firstBean") @Qualifier(
@Lookup
文档时,它说它在@configuration
类中的工厂方法上不起作用,而且我读到每当我们使用新的实例化时,spring注释都不会被处理。
因此我尝试了,@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
定义的类上不起作用,而其他注释却起作用呢
这种查找方法可以有默认的(存根)实现
只需将其替换为容器,或者将其声明为
抽象-用于在运行时填充它们的容器。两者
在这种情况下,容器将生成方法的
通过CGLIB包含类,这就是为什么这样的查找方法只能
处理容器通过正则表达式实例化的bean
构造函数:即,查找方法不能在bean上被替换
从工厂方法返回,其中我们无法动态提供
它们的子类
我希望这是不言自明的。工厂方法返回的bean上的其他注释呢?每个注释都有不同的用途。你可以向更广泛的听众提问,以得到一个好的答案。