每日一博 | 烂大街的 Spring 循环依赖该如何回答?
什么是循环依赖? 从字面上来理解就是A依赖B的同时B也依赖了A,就像上面这样,或者C依赖与自己本身。体现到代码层次就是这个样子 @ComponentpublicclassA{//A中注入了B@AutowiredprivateBb;}---@ComponentpublicclassA{//A中注入了B@AutowiredprivateBb;}---//自己依赖自己@ComponentpublicclassC{//C中注入了C@AutowiredprivateCc;} 虽然体现形式不一样,但是实际上都是循环依赖的问题。 什么情况下循环依赖可以被处理? Spring解决循环依赖是有前置条件的 出现循环依赖的Bean必须要是单例(singleton),如果依赖prototype则完全不会有此需求。 依赖注入的方式不能全是构造器注入的方式(只能解决setter方法的循环依赖,这是错误的) 1. AB 均采用setter方法注入 结果OK 2. AB 均采用属性Autowired注入 结果ok 3. AB均采用构造器方法注入 出现循环依赖 4. A中注入B的方式为setter方法,B中注入A的方式...

