一、Spring循环依赖
面试题:
1、你解释下spring中的三级缓存?
2、三级缓存分别是什么?三个Map有什么异同?
3、什么是循环依赖?请你谈谈?看过spring源码吗?一般我们说的spring容器是什么?
4、如何检测是否存在循环依赖?实际开发中见过循环依赖的异常吗?
5、多例的情况下,循环依赖问题为什么无法解决?
1、什么是循环依赖?
1、多个bean之间相互依赖,形成了一个闭环。
比如:A依赖于B、B依赖于C、C依赖于A
public class T1 {
class A {
B b;
}
class B {
C c;
}
class C {
A a;
}
}
2、通常来说,如果问spring容器内部如何解决循环依赖,一定是指默认的单例Bean中,属性互相引用的场景。
@Component
public class A {
@Autowired
private B b;
}
@Component
public class B {
@Autowired
private C c;
}
@Component
public class C {
@Autowired
private A a;
}
一个程序员最重要的能力是:写出高质量的代码!!
有道无术,术尚可求也,有术无道,止于术。
无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃!