解决spring bean之间循环依赖问题

正统的方法

网上已经有很多文章来说明bean循环依赖的原因了.

总结就是先把bean放到三级缓存(singletonFactory)中,方便被依赖的bean可以读到它。

那解决的方法就是不用构造方法来初始化bean,用属性注入即可,因为用属性注入才会放到三级缓存里,也就是

@Autowired
private Service1 service1;

旁门左道的方法

可能有些项目大了,之前都是构造器注入,都改成属性注入又不好搞,所以有些旁门左道的方法:

  • 把两个bean融合,那就没有这问题了。(相当于没说)
  • 用发布订阅来搞(ApplicationEvent)。(没试过,应该行得通)
  • 用applicationContext.getBean(T.class)。 (有时确实这个方法是最靠谱的)

用发布订阅来搞的话,其实不太好,因为会增加项目的复杂度,本来直观能看到每个类或者bean在什么地方引用,但是用事件去处理时就不是很直观了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容