@Bean
public Object o1() {
System.out.println("o1");
return new Object();
}
@Bean
public Object o2(Object o1) {
System.out.println(new Object() == new Object());
System.out.println("注入的对象和直接调用的一样吗?" + (o1 == o1()));
return new Object();
}
在springboot下的输出:
o1
false
注入的方法和调用的一样吗?true
我的想法:初始化o1, 初始化o2注入o1, 在o2内部调用o1得到一个新的object, 比较得false
还是自己想到了,最后只有一种方法可以拦截上面的o1调用,那就是代理
下面是用@Configuration 注解的 BeanTest的代理类
class spring.BeanTest$$EnhancerBySpringCGLIB$$310664fb