gpt4 book ai didi

java - 如果我们有多个 XML 配置文件,DispatcherServlet 是如何工作的?

转载 作者:IT老高 更新时间:2023-10-28 13:47:58 24 4
gpt4 key购买 nike

问题

如果我们有多个 XML 配置文件,DispatcherServlet 是如何工作的,那么 Spring Application Context 是如何加载它们并作用于它们的呢?

场景:

在我的例子中,我们有一个应用程序应该是全局性的,即应用程序应该有 AP{Asia-Pacific}、EM{Europ-Middleeast}、CA{Canada} 和 LA{Latin America} 版本。

目前,我们有一个区域的应用程序 EM,它有它的 XML 配置文件,即 em-servelt.xml,然后是通用 web.xml 文件现在用于 AP region 我们有另一个 ap-servlet.xml 文件,顺便说一下 em-servlet.xmlap-servlet.xml 文件 将具有相同的 bean 名称,但它们将指向不同包中的 Controller ,例如,em 将指向类似 com.em 的东西。 DomainController 和 ap 将指向 com.ap.DomainController

所以我的问题是

请求如何映射到不同的 Controller 以及如何识别请求以便从 ap-servlet.xml 或 em-servlet.xml 中读取?

我希望能够清楚地说明我的问题。

最佳答案

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>

关于java - 如果我们有多个 XML 配置文件,DispatcherServlet 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com