假设您创建的上下文有点像
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
由于
@Configuration,Spring将创建一个类型的bean
AppConfig并对其进行代理,因为它具有
@Bean方法。你应该检查出
ConfigurationClassEnhancer的实施细则。
这些方法不会直接在对象上调用。显然,它们不能,因为在编译时不知道它们。通过在代理服务器上进行反射来调用它们。
所以当你有
@Beanpublic CustomBean foo() { return new CustomBean(bar());}
相当于
@Beanpublic CustomBean foo() { return new CustomBean(this.bar());}
该
this指的是其高速缓存方法调用,并立即如果它之前被调用它返回它的结果的代理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)