spring 如何解决循环依赖的问题

发布时间 2023-12-23 19:33:54作者: lov_ui

spring 是通过三级缓存来解决循环依赖问题的

一级缓存 :用来存储完整的bean,这些实列是可以直接使用的。

二级缓存:用来存储实例化以后但是属性值还没有赋值的bean,也就是还没有进行依赖注入的bean。

三级缓存:用来存储Bean工厂,主要用来生成原址的bean对象,并且放到二级缓存里面。

三级缓存的核心思想,就是把bean的实例化,和bean里面的依赖注入进行分离,采用一级缓存存储完成的bean实例,二级缓存存储不完整的bean实例,通过不完整的bean实例作为突破口,解决循环依赖的问题。三级缓存主要是用来解决代理对象的循环依赖问题。