网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

阅读本文,轻松掌握Spring Boot破解循环依赖的秘诀!

GG网络技术分享 2025-11-14 08:18 1


在Spring框架中, 循环依赖是指两个或优良几个Bean之间存在相互依赖关系,弄得无法正常完成依赖注入的情况。

循环依赖的类型

  1. 直接循环依赖两个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解决循环依赖基本上依赖于以下几个步骤:

  1. 实例化阶段Spring会创建Bean的实例,但此时不会进行依赖注入。

  2. 属性填充阶段Spring会填充Bean的属性。

  3. 依赖注入阶段Spring会注入Bean的依赖。

Spring通过以下机制解决循环依赖:

  • 三级缓存

    • 一级缓存缓存Yi经彻头彻尾初始化并创建完成的Bean。
    • 二级缓存缓存Bean的早期引用。
    • 三级缓存缓存Bean的定义信息。
  • 早期引用缓存当找到循环依赖时Spring会将其中一个Bean的早期引用放入二级缓存中。

用@Lazy注解

在Spring Boot中, Neng用@Lazy注解来延迟加载依赖的Bean,从而避免循环依赖:

Spring通过三级缓存机制和早期引用缓存来处理循环依赖,从而确保Bean的创建和依赖注入Neng正确进行。用@Lazy注解Neng进一步控制Bean的加载时机,避免循环依赖。

标签:

提交需求或反馈

Demand feedback