简单了解spring bean的循环引用
2019-10-19 18:06
1696 查看
看过一次spring公开课,记录一下bean的循环引用问题。
问题:
public class IndexService{ @Autowired IndexDao indexDao; } public class IndexDao{ @Autowired IndexService indexService; }
以上的实例中IndexService依赖IndexDao,IndexDao中依赖IndexService。
spring在bean的实例化过程:
先去创建IndexDao bean,
1.创建IndexDao实例,此时还没有IndexDao bean产生。
2.去配置IndexDao对象的属性,这个属性就是IndexService,在这个配置的过程中会先把自己(IndexDao)对象放到singleFactory中;
3.然后去查找IndexService bean去填充,发现单例池(专门存放bean)中没有,然后去singleFactory中去找,还是没有。
4.创建IndexService实例,此时还没有IndexService bean。
5.去配置IndexService对象的属性,这个属性就是IndexDao,在这个配置的过程中会先把自己(IndexDao)对象放到singleFactory中;
6.然后去查找IndexDao bean去填充,发现单例池中没有,然后去singleFactory中去找,发现有了。
7.然后把属性填充到IndexService中。
8.经过4,5,6,7后已经有了IndexService,并且此时属性IndexDao有值了,然后通过步骤3再将这个IndexService注入到IndexDao
9.然后继续完成IndexDao 后续的bean的初始化。
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- element上传组件循环引用及简单时间倒计时的实现
- C++ — 智能指针的简单实现以及循环引用问题
- C++ — 智能指针的简单实现以及循环引用问题
- 常规循环引用内存泄漏和Closure内存泄漏 一些 简单的解决方案
- node循环引用简单测试
- spring bean循环引用问题
- C++ 智能指针——简单实现以及循环引用问题
- 对各种引用的简单了解
- 简单快速的理解block的循环引用及__weak的使用条件
- IOS学习 NSOperation cell存储图片思路 沙盒路径查找 数组中添加空对象 block循环引用风险
- 简单了解ES6的语法
- 数据结构学习之路(四)用数组简单实现循环队列
- xmpp协议简单了解
- Swift 闭包循环引用安全
- 简单了解Effective java - 第7条 避免使用终结方法
- 简单字符图形的双重循环
- Swift与OC真正去理解Block解决循环引用的技巧
- Swift常见引用循环及解决方案
- Access2003 循环引用 错误提示解决办法
- block使用小结、在arc中使用block、如何防止循环引用