,相信之前有很多开发者遇到这样的问题吧,不过现在Spring底层已经通过三级缓存来解决了这个循环依赖的问题了。...需要注意是的是:
上图指的循环依赖不是方法之间的调用,而是对象之间的相互引用
Spring Bean的循环依赖
谈到Spring Bean循环依赖,估计大家伙可能遇到的比较少,毕竟在开发的过程中好像没有循环依赖这个概念...,只需要在任意一个构造注入中使用@Lazy即可解决
2.通过Setter注入
这种方式注入是我们最常用的一种依赖注入方式(Spring底层通过三级缓存解决循环依赖)
@Component
public...容器三级缓存
三级缓存其实更像Spring容器的术语,采用三级缓存来解决循环依赖问题,三级缓存的大概作用如下:
名称 描述
singletonObjects 一级缓存,存放完整的Bean
earlySingletonObjects...二级缓存,存放提前暴露的Bean,且该Bean是不完整的
singletonFactories 三级缓存,存放的是Bean工厂,主要生产Bean的
从源码方面来分析Spring的循环依赖
提示:本文的分析重点主要在于