很多时候我们写configuration时候会写很多@Bean这种注解,用来向ioc容器注册实例。于是很可能出现以下这种代码
@Bean
public A getA(){
System.out.println("new a");
return new A();
}
@Bean
public C c1(){
C c = new C();
c.setA(getA());
return c;
}
@Bean
public C c2(){
C c = new C();
c.setA(getA());
return c;
}
默认情况下,spring会为@Configuration注解下的bean构造方法提供代理支持(用来描述bean之间的依赖关系),对getA增强过后,那么以上中c1里的a和c2里的a则都会获取同一个A的引用,如果某些情况下需要两个不同的a,则需要设置proxyBeanMethods为false。
本文由 转啊转 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2019/01/06 21:43