如何解决循环依赖

103 阅读1分钟

循环依赖是指一个或多个 Bean 实例之间存在直接或间接的依赖关系,构成循环调用

有三种情况:

1,A B互相依赖

2,A B C 互相依赖

3,A自身依赖自身

解决方式:

三级缓存

一级缓存:缓存好可以直接使用的bean,可以称为成熟的bean

二级缓存:缓存好已经被实例化的bean,但是其自身的依赖没有实例化

三级缓存:缓存的是bean的工厂,用于实例化bean,并将其放入二级缓存

本质上,三级缓存的设计就是将bean的实例化与自身的依赖分离开来,从而达到解决循环依赖的目的