问题
如果我们有多个 XML 配置文件,DispatcherServlet 如何工作,那么 Spring Application Context 如何加载它们并对其进行操作?
设想:
就我而言,我们有一个应该是全局的应用程序,即应用程序应该具有AP{Asia-Pacific}, EM{Europ-Middleeast}, CA{Canada} and LA{Latin America}
版本。
目前,我们有一个地区的申请,即EM
并且它有它的XML Configuration File i.e, em-servelt.xml
然后是通用的web.xml
立即归档AP region
我们还有另一个ap-servlet.xml
文件,顺便说一下em-servlet.xml
and ap-servlet.xml file
将具有相同的 bean 名称,但它们将指向不同包中的控制器,因此例如, em 将指向类似的东西com.em.DomainController
ap 将指向com.ap.DomainController
.
所以我的问题是
请求如何映射到不同的控制器以及如何识别请求以便它应该从 ap-servlet.xml 或 em-servlet.xml 读取?
The web.xml
文件可以配置多个DispatcherServlet
实例,每个实例都有自己的配置。每个DispatcherServlet
实例配置一个WebApplicationContext
与其他分开DispatcherServlet
实例,因此您可以使用相同的 bean 名称而不影响其他应用程序上下文。
<!-- configured by WEB-INF/ap-servlet.xml -->
<servlet>
<servlet-name>ap</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- configured by WEB-INF/em-servlet.xml -->
<servlet>
<servlet-name>em</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
您还必须配置web.xml
将请求映射到适当的DispatcherServlet
。例如,每个区域可以有不同的 URL 路径。
<servlet-mapping>
<servlet-name>ap</servlet-name>
<url-pattern>/ap/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>em</servlet-name>
<url-pattern>/em/*</url-pattern>
</servlet-mapping>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)