Spring的循环依赖
常见的Bean循环依赖的场景
第一种是两个Bean相互依赖
第二种是三个Bean相互依赖
第三种是自己依赖了自己
可以自己在开发工具中进行实践
创建一个项目,在创建两个类将其设置为Bean,让它们两个相互依赖
这样就是相互依赖了,但是这并不是说就是错误的这是一种field注入循环依赖,你的ioc容器可能会帮你解决掉,这个时候就需要我们自己告诉IOC容器进行解决。
在你的yml文件进行配置
除了上面这一种还可以通过构造器进行注入,这种就是构造器方式循环依赖,IOC容器不可以进行处理
解决循环依赖的方法
我们一般使用三级缓存进行解决
第一级缓存是已经实例化初始化的对象也就是成熟的对象是功能完毕的Bean
第二级缓存是实例化之后但没有完成属性注入初始化的Bean
第三级是生成原始对象类型aop操作后的代理对象
解决循环依赖的方法
主要遵循好了上面的规则就可以尽力避免循环依赖,尽量在编写代码的时候不要出现循环依赖,否则十分麻烦