首页 > 技术交流 > Spring如何解决循环依赖?

Spring如何解决循环依赖?

头像
小谢backup
编辑于 2021-03-11 23:52:40 APP内打开
赞 1 | 收藏 4 | 回复0 | 浏览669
1、Java中的循环依赖分两种,一种是构造器的循环依赖,另一种是属性的循环依赖。

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

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

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

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

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

内容来源公众号:小谢backup

0条回帖

回帖
加载中...
话题 回帖

相关热帖

技术交流近期热帖

近期精华帖

热门推荐