admin管理员组

文章数量:1530063

项目中存在bean自己引用自己的情况,类似如图所示

最终抛出这个异常

 

百度之后的解决方案在引入的TestService上加@Lazy注解即可搞定。确实也正常了。但是因为之前处理过类似的情况也是自己引用自己,只不过是在方法上加入的是@Transaction 注解,调用初始化也确实没有问题。并未出现如图所示的异常。

最终在AbstractAutowireCapableBeanFactory 中这里发现有点不一样的地方了。

由于后面会对 exposedObject 和bean 做判断,2个对象是否还相同,由于使用@Async注解后这2个对象不再一样

 

如果使用@Async注解,

在此处 会被  getBeanPostProcessors() 中的

AsyncAnnotationBeanPostProcessor 进行处理,生成一个新的代理对象 

 

bean 和 exposedObject 2个对象不再相等,最后走到了 else if 逻辑,最终抛出标题中的异常

 

本文标签: 抛出异常项目VersionRAW