CS-Notes 学习笔记
面试常问面试冲刺 · 框架、分布式与大模型

Spring 怎样解决循环依赖?

先自己想一想,再看参考要点

参考要点

  • 针对字段或 Setter 注入的单例 Bean,用三级缓存提前暴露未初始化完的对象:一级存初始化完成的 Bean,二级存提前暴露的 Bean,三级存生成提前引用的工厂
  • A 实例化后放入工厂,注入 B 时 B 从工厂拿到 A 的提前引用,A 需要 AOP 代理时工厂提前创建代理,使 B 拿到的就是最终对象
  • 构造器注入和原型 Bean 无法解决,Spring Boot 2.6 起默认禁止循环依赖
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。