Spring循环依赖解析与三级缓存机制
本文深入剖析Spring框架解决循环依赖的三级缓存机制。该机制通过singletonObjects(完全初始化Bean)、earlySingletonObjects(半成品Bean)和singletonFactories(对象工厂)三级缓存协同工作:实例化时将半成品工厂存入三级缓存,依赖注入时若发现循环依赖则提前暴露半成品引用至二级缓存,完成初始化后升级至一级缓存。此机制支持字段/Setter注入的循环依赖,但无法解决构造器注入及原型Bean的循环依赖。文章强调开发者应理解机制而非依赖它,建议通过事件驱动、门面模式等设计优化架构,避免循环依赖的产生。