刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
说白是一个或多个对象实例之间存在直接或间接的依赖关系,这种依赖关系构成了构成一个环形调用。


单例的setter注入:
@Service
public class TestService1 {
@Autowired
private TestService2 testService2;
public void test1() {
}
}
@Service
public class TestService2 {
@Autowired
private TestService1 testService1;
public void test2() {
}
}
这是一个经典的循环依赖,但是它能正常运行,得益于spring的内部机制,
让我们根本无法感知它有问题,因为spring默默帮我们解决了。
Spring内部有三级缓存:


这类循环依赖问题解决方法很多,主要有:
这类循环依赖问题要找到@DependsOn注解循环依赖的地方,迫使它不循环依赖就可以解决问题。
这类循环依赖问题可以通过把bean改成单例的解决。
这类循环依赖问题可以通过使用@Lazy注解解决。
本文链接:Spring 是如何解决循环依赖的 ?
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
