Spring中的循环依赖问题介绍及解决方法
来源:互联网 发布:淘宝团队架构 编辑:程序博客网 时间:2024/05/29 08:52
Spring容器能顺利的实例化以构造函数注入方式配置的bean有一个前提:即bean构造函数入参引用的对象必须已经准备就绪。
那么如果两个bean都采用构造函数注入,并且都通过构造函数入参引用了对方。就会发生类似与线程死锁的循环依赖问题。
那么接下来我们看一个发生循环依赖问题的例子:
public class Car{ private String brand; private Boss boss; public Car(String brand, Boss boss) { this.brand = brand; this.boss = boss; }}public class Boss{ private String name; private Car car; public Boss(String name, Car car) { this.name = name; this.car = car; }}
可以看到在Car类中的构造函数中引入了Boss类对象,而在Boss类的构造函数当中引入了Car类。
看一下相应的配置文件:
<bean id="car" class="cn.lovepi.chapter02.reflect.Car"> <constructor-arg index="0" value="红旗CA72"/> <constructor-arg index="1" ref="boss"/></bean><bean id="boss" class="cn.lovepi.chapter03.scope.Boss"> <constructor-arg index="0" value="wang"/> <constructor-arg index="1" ref="car"/></bean>
这种情况下,Spring容器无法成功启动。
这种情况的解决方式便是:
调整配置文件,将构造函数注入方式改为属性注入方式即可。
0 0
- Spring中的循环依赖问题介绍及解决方法
- Spring中的循环依赖问题
- Spring中的循环依赖问题
- Spring中的循环依赖
- spring循环依赖问题
- SPRING循环依赖(circular reference)的解决方法
- SPRING循环依赖(circular reference)的解决方法
- IDEA 循环依赖解决方法
- spring hibernate mysql 使用中的问题及解决方法
- spring循环依赖
- spring处理循环依赖
- JAVA,循环依赖,Spring
- spring循环依赖
- Spring 循环依赖
- spring 源代码 循环依赖
- spring循环依赖
- Spring 循环依赖
- Spring循环依赖
- python导入package
- EDK14.7 ip核向导 驱动文件bug修复
- 百度地图定位源码学习
- select与poll、epoll
- LeetCode:Ugly Number
- Spring中的循环依赖问题介绍及解决方法
- xml笔记
- Android SwipeRefreshLayout 谷歌自己下拉刷新组件
- 第十五周程序-阅读程序-2
- 腾讯实习mini项目总结
- leetcode-java-121. Best Time to Buy and Sell Stock
- Menu菜单方法
- Eclipse快捷键
- 博客搬家~