什么是循环依赖?
打个比方,你打电话给小明,小明也在打电话给你,此时电话里会说对方正在通话中,而上述报错就是这个”正在通话中“。代码含义就是:a中注入了b,b中又注入了a,就会触发循环依赖问题;
话不多说上代码:
public class A{
@Autowired
private B b;
}
public class B{
@Autowired
private A a;
}
解决方法:
在某一个类中添上@Lazy注解,该注解的作用是延迟互相依赖的其中一个bean的加载,从而解决Spring在初始化bean的时候不知道先初始化哪个的问题。
public class A{
@Autowired
@Lazy
private B b;
}
通过修改yml配置文件解决循环依赖
Spring:
main:
allow-circular-references:true
总结:
循环依赖引用是不鼓励的,默认情况下是禁止的。能别用就不用吧~~~