Spring如何解决循环依赖?

1、Java中的循环依赖分两种,一种是构造器的循环依赖,另一种是属性的循环依赖。

2、在Spring中,对象的实例化是通过反射实现的,而对象的属性则是在对象实例化之后注入的,有setter注入、构造器注入和注解注入三种。前两种注入方式可以实现循环依赖。

3、Spring实例化bean用的是ApplicationContext.getBean()方法。

4、Spring是通过递归的方式获取目标bean及其所依赖的bean。

5、循环依赖就说明程序设计有问题,这就是Springboot推荐使用构造注入的原因,循环依赖直接报错无法启动,而setter注入会成功。

6、如何解决属性的循环依赖?Spring主要的思路就是依据三级缓存。
但Spring无法解决构造器的循环依赖,也不需要解决,因为它会直接抛异常。

内容来源公众号:小谢backup
全部评论

相关推荐

1 5 评论
分享
牛客网
牛客企业服务