“Spring 循环依赖”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) (→三级缓存结构) |
||
第27行: | 第27行: | ||
=== 三级缓存结构 === | === 三级缓存结构 === | ||
− | + | 第一级缓存:保存已经完成实例化但还未完成初始化的对象 | |
第二季缓存:保存完成初始化的对象或代理对象 | 第二季缓存:保存完成初始化的对象或代理对象 | ||
第三层缓存:保存对象工厂 | 第三层缓存:保存对象工厂 |
2024年7月15日 (一) 02:41的版本
什么是循环依赖
public class A {
private B b;
public void setB(B b){
this.b = b;
}
}
public class B {
private A a;
public void setA(A a){
this.a = a;
}
}
首先
在实际开发中应该尽量避免循环依赖
实例化和初始化
实例化是:A a = new A(); 的过程
初始化是:在实例化后调用 a.setB(); 的过程
三级缓存结构
第一级缓存:保存已经完成实例化但还未完成初始化的对象
第二季缓存:保存完成初始化的对象或代理对象
第三层缓存:保存对象工厂