前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我去!终于有人把 Spring 循环依赖讲清楚了!

我去!终于有人把 Spring 循环依赖讲清楚了!

作者头像
GitHubDaily
发布2020-07-14 20:37:10
4360
发布2020-07-14 20:37:10
举报
文章被收录于专栏:GitHubDailyGitHubDaily

什么是循环依赖?

循环依赖其实是指两个及以上 bean 相互持有对方,最终形成闭环的过程(一般聊循环依赖都是默认的单例 bean),简单说就是 A 依赖 B,B 依赖 C,C 又依赖 A。

其实在 Spring 中,有两种循环依赖的场景...

  • 第一种:构造器的循环依赖
  • 第二种:setter 的依赖注入

第一种是没有办法解决的,而第二种可以使用提前暴露对象的方式进行解决

那么肯定有很多小伙伴会有疑问,为什么?

其实想搞明白这个问题,需要对 Spring 的 Bean 的生命周期有一个完整的了解,如下图:

大家可能对这个图不太熟悉,但是我要强调的是,图中我已经用三种颜色标识了,除了使用这部分之外,可以分为实例化和初始化,这也是解决问题的核心。

同时,Spring 中还使用了三级缓存来解决问题:

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-14,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 GitHubDaily 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com