Products
GG网络技术分享 2025-11-14 08:18 1
在Spring框架中, 循环依赖是指两个或优良几个Bean之间存在相互依赖关系,弄得无法正常完成依赖注入的情况。
直接循环依赖两个Bean互相依赖, 比方说: java @Component public class A { private B b; public A { this.b = b; } }

@Component public class B { private A a; public B { this.a = a; } }
Spring解决循环依赖基本上依赖于以下几个步骤:
实例化阶段Spring会创建Bean的实例,但此时不会进行依赖注入。
属性填充阶段Spring会填充Bean的属性。
依赖注入阶段Spring会注入Bean的依赖。
Spring通过以下机制解决循环依赖:
三级缓存
早期引用缓存当找到循环依赖时Spring会将其中一个Bean的早期引用放入二级缓存中。
在Spring Boot中, Neng用@Lazy注解来延迟加载依赖的Bean,从而避免循环依赖:
Spring通过三级缓存机制和早期引用缓存来处理循环依赖,从而确保Bean的创建和依赖注入Neng正确进行。用@Lazy注解Neng进一步控制Bean的加载时机,避免循环依赖。
Demand feedback