Spring dispatch servlet和context Loader Listener之间的bean创建顺序是否有差异
当通过上下文加载器侦听器加载配置xml时,我在访问实例变量时遇到了一个问题 下面是用于创建bean的配置xmlSpring dispatch servlet和context Loader Listener之间的bean创建顺序是否有差异,spring,spring-mvc,Spring,Spring Mvc,当通过上下文加载器侦听器加载配置xml时,我在访问实例变量时遇到了一个问题 下面是用于创建bean的配置xml <bean id="A" class"org.sample.A"> </bean> <bean id="B" class"org.sample.B"> <property name="cobj" ref="C"/> </bean> <bean id="C" class"org.sample.C"/&
<bean id="A" class"org.sample.A">
</bean>
<bean id="B" class"org.sample.B">
<property name="cobj" ref="C"/>
</bean>
<bean id="C" class"org.sample.C"/>
当通过上下文加载程序侦听器加载配置xml时,sysout打印null。
但当通过DispatcherServlet加载相同的配置时,该值可用
此外,如果显示方法修改如下,则显示结果
public void display(){
B stackObj = new B();
System.out.println(stackObj.cobj);
}
当通过上下文加载器进行配置时,Bean B将在稍后初始化。
但如果通过DispatcherServlet配置,则其初始化时间早于类A
这个创建顺序可以确定吗?你不能自己创建对象。这就是春天应该做的;向您提供对象。通过调用
xmlBeanFactory
加载所有对象,然后实际使用spring使用spring或不使用spring究竟为什么要使用getInstance并在上下文中创建bean。两者都有点矛盾。@M.Deinum谢谢。我删除了这些方法,并使用spring进行了初始化。但是我想知道为什么DispatcherServlet和ContextLoader之间的顺序是不同的。。。这种差异是由getInstance
方法的精巧装置造成的。
public void display(){
B stackObj = new B();
System.out.println(stackObj.cobj);
}