在某些servlet之后在web应用程序中加载spring上下文

在某些servlet之后在web应用程序中加载spring上下文,spring,web-applications,servlets,Spring,Web Applications,Servlets,我们需要在一个servlet初始化后在web应用程序中加载spring应用程序上下文,所以我想知道最好的方法是什么 我知道建议在web.xml中使用侦听器,但这显然对我们不好,因为在这种情况下,上下文将在第一个servlet之前加载。我在Spring2.5中看到了这个类——ContextLoaderServet,但在Spring3.0中没有。所以我想我们应该自己编写一些虚拟servlet,其唯一目的是加载上下文?还有更好的办法吗 谢谢。好的,如果您有这个设置东西的遗留servlet,那么您需要说

我们需要在一个servlet初始化后在web应用程序中加载spring应用程序上下文,所以我想知道最好的方法是什么

我知道建议在web.xml中使用侦听器,但这显然对我们不好,因为在这种情况下,上下文将在第一个servlet之前加载。我在Spring2.5中看到了这个类——ContextLoaderServet,但在Spring3.0中没有。所以我想我们应该自己编写一些虚拟servlet,其唯一目的是加载上下文?还有更好的办法吗


谢谢。

好的,如果您有这个设置东西的遗留servlet,那么您需要说服Spring servlet在它之后加载

这很简单-使用Spring的DispatcherServlet加载Spring上下文,并使用web.xml中的标准来指定启动顺序,例如

<servlet>
  <servlet-name>LegacyServlet</servlet-name>
  <servlet-class>com.xy.LegacyServlet</servlet-class>
  <load-on-startup>0</load-on-startup>
</servlet>


<servlet>
  <servlet-name>SpringServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

无论如何,ContextLoaderListener只是被委派给ContextLoaderListener。你为什么要这么做?如果你解释了原因,也许我们可以建议一个替代方案。原因是-一个遗留servlet执行一些初始化例程,创建和配置我们希望在使用Spring的上层使用的一些数据结构。因此,以后必须加载Spring上下文,以便它可以在bean初始化中引用这些结构。