Der*_*har 1 java configuration spring dependency-injection infinite-loop
给定以下Spring应用程序上下文和A类,当您运行A类时会发生什么?
applicationContext.xml(在类路径中):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean name="a" class="A"/>
</beans>
Run Code Online (Sandbox Code Playgroud)
A.java:
class A {
private ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
public static void main(String[] args) {
A a = new A();
}
}
Run Code Online (Sandbox Code Playgroud)
不要质疑你的方法,但为什么这是必要的?如果bean想要指向应用程序上下文的指针,那么它应该实现ApplicationContextAware.你将实现一个setter,Spring会将app上下文注入bean中.
除非我弄错了,否则您的示例代码实际上不会给该bean指向其应用程序上下文的指针,它将使用与以前相同的XML文件启动新的应用程序上下文.这将反过来创建一个新的bean,它将启动另一个应用程序上下文等 - 一个无限循环.试试你的代码,看看是否会发生这种情况.
归档时间: |
|
查看次数: |
1390 次 |
最近记录: |