Spring IOC循环依赖的问题

2020-04-20  本文已影响0人  LANSHENGYANG

前言

先看一个循环依赖问题

现象
如何理解"依赖"呢,在Spring中有:
直接上代码:
1.构造器循环依赖
@Service
public class A {
    public A(B b) {  }
}
@Service
public class B {
    public B(C c) {
    }
}
@Service
public class C {
    public C(A a) {  }
}
2.field属性注入循环依赖
@Service
public class A1 {
    @Autowired
    private B1 b1;
}
@Service
public class B1 {
    @Autowired
    public C1 c1;
}
@Servicejava
public class C1 {
    @Autowired  public A1 a1;
}
3.field属性注入循环依赖(prototype)
@Service
@Scope("prototype")
public class A1 {
    @Autowired
    private B1 b1;
}
@Service
@Scope("prototype")
public class B1 {
    @Autowired
    public C1 c1;
}
@Service
@Scope("prototype")
public class C1 {
    @Autowired  public A1 a1;
}

分析原因

SpringBean的加载流程(源码分析)

ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
ac.getBean(XXX.class);
上一篇 下一篇

猜你喜欢

热点阅读