Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring dispatch servlet和context Loader Listener之间的bean创建顺序是否有差异_Spring_Spring Mvc - Fatal编程技术网

Spring dispatch servlet和context Loader Listener之间的bean创建顺序是否有差异

Spring 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"/&

当通过上下文加载器侦听器加载配置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"/>
当通过上下文加载程序侦听器加载配置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);
   }