构造器参数循环依赖
- 对于构造器循环依赖,Spring有一个“当前创建bean池”,每一个正在创建的对象都有一个bean标识符,spring会将这个bean标识符放到“当前创建bean池”中,在bean创建的过程中,这个bean标识符会一直在“当前创建bean池”中,只有创建完成的bean的标识符才会被移出,如果在创建过程中,发现自己已经在这个“当前创建bean池”中了,那就会抛出循环依赖异常。
- 代码
public class Duck {
public Duck duck;
public Duck() {
}
public Duck(Duck duck) {
this.duck = duck;
}
public void setDuck(Duck duck) {
}
}
<bean id="duck1" class="model