Spring如何解决循环依赖笔记


此篇笔记内容来源于简书 Spring解决循环依赖源码分析,作者简书网名是土豆肉丝盖浇饭,有兴趣可以关注大佬。同时感谢公众号—再见伐木机提供的学习交流群,跟群友一起学习进步(看大佬讨论问题真是一种享受,哈哈)。

1. Spring解决循环依赖前提

1、bean的作用域必须是单例。
2、不能使用构造函数方式注入循环依赖,使用构造函数循环依赖Spring将抛出异常。
注: bean的注入方式有两种: 一是构造函数, 二是字段注入

2. 字段注入循环依赖Spring加载流程图

在这里插入图片描述
步骤如下:
1、 向BeanFactory获取A类的bean实例。
2、 A类bean实例化,把未初始化完成的自己放入二级缓存中。
3、A类bean进行构造(populdateBean),触发依赖注入B类实例。
4、向BeanFactory获取B类的bean实例。
5、B类bean实例化,把未初始化完成的自己放入二级缓存中。
6、B类bean进行构造(populdateBean),触发依赖注入A类实例。
7、从二级缓存中获取到未初始化完成的A。
8、B类bean实例进行初始化,返回给第3步A依赖注入B。
9、A类bean实例进行初始化。
10、返回给调用getBean的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值