Spring Bean的初始化是首先调用Bean的默认构造器,然后调用set方法对属性进行注入。
如果:
A包含属性B,B包含了属性A。
例子:
@Component
public class A {
@Autowired
private B b;
public void aHello(){
System.out.println("aHello!");
}
public void bothHello(){
aHello();
b.bHello();
}
}
@Component
public class B {
@Autowired
private A a;
public void bHello(){
System.out.println("bHello!");
}
}
public class HelloApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
A a = context.getBean(A.class);
a.bothHello();
}
}
输出:
aHello!
bHello!
A和B循环引用,程序正常运行。请问Spring是怎么解决类似的循环引用问题的?
开满天机
慕的地8271018
守候你守候我
噜噜哒
相关分类