多个应用程序上下文,多个调度程序servlet?

Pho*_*nix 22 spring servlets spring-mvc

到目前为止,我曾经认为Web应用程序只能有一个我们在web.xml中定义的调度程序servlet我是否正确地这样思考?你能在一个Web应用程序中拥有多个调度程序servlet吗?怎么样?我们可能需要这种情况是什么?此外,整个Web应用程序中只能有一个应用程序上下文吗?我们如何定义多个应用程序上下文?调度程序servlet是否可以存在于非Spring应用程序中?

Tom*_*icz 28

你能在一个Web应用程序中拥有多个调度程序servlet吗?

当然,引用官方文档(粗体实际上也存在!)

Web应用程序可以定义任意数量的DispatcherServlet.每个servlet将在其自己的命名空间中运行,使用映射,处理程序等加载其自己的应用程序上下文.只有ContextLoaderListener加载的根应用程序上下文(如果有)将被共享.


怎么样?

只需声明几个不同名称但使用org.springframework.web.servlet.DispatcherServlet类的servlet .还要确保yourServletName-servlet.xml文件可用.


我们可能需要这种情况是什么?

DispatcherServlet非常灵活.不仅Spring MVC使用它,还有Spring WS,Spring支持等.


此外,整个Web应用程序中只能有一个应用程序上下文吗?

已回答,也在引用的文档中:每个DispatcherServlet+一个主Web应用程序上下文一个应用程序上下文.


我们如何定义多个应用程序上下文?

见上文,只需创建多个DispatcherServlets.


调度程序servlet是否可以存在于非Spring应用程序中?

DispatcherServlet是一个Spring上下文(Spring应用程序)本身,因此:没有.在手上DispatcherServlet可以在没有父(主)应用程序上下文的应用程序中声明,因此:是的.