Spring缓存机制循环依赖问题.pdfVIP

  • 0
  • 0
  • 约1.22千字
  • 约 1页
  • 2026-08-14 发布于北京
  • 举报

Spring是如何解决循环依赖的问题的?

缓存,提前对象,aop

总:什么是循环依赖问题,A依赖B,B依赖C,C依赖A

分:先说明bean得创建过程:实例化,初始化(填充属性)

1.先创建A对象,实例化A对象,此时A对象中的b属性为空

2.从容器中查找B对象,如果找到了,直接赋值不存在循环依赖问题(不通),找不到直接创建B对象

3.实例化B对象,此时B对象中的a属性为空,填充属性a

4.从容器中查找A对象,找不到,直接创建

此时,如果仔细琢磨的话,会发现A对象,是存在的,只不过此时的A对象不是一个完整的状态,只

完成了实例化但是未完成初始化,如果在程序调用过程中,拥有了某个对象的,能否在后期给他完

成赋值操作,可以优先把非完整状态的对象优先赋值,等待后续操作来完成赋值,相当于提前了某

个对象的,所以解决问题的在于实例化和初始化分开操作,这也是解决循环依赖问题的

关键,

当所有的对象都完成实例化和初始化操作,还要把完整对象放到容器中,此时在容器中存在对象

的几种状态,完成实例化=但未完成初始化,完整

文档评论(0)

1亿VIP精品文档

相关文档