加载上下文的顺序配置在Web中的位置.xml Spring Servlet项目
假设我有一个Spring Java项目,我正在尝试将其配置为Web服务器servlet。以下是 web.xml 文件的精简版本:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/generalApplicationContext.xml
</param-value>
</context-param>
<servlet>
<servlet-name>my-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/specificApplicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>my-servlet</servlet-name>
<url-pattern>/foo/*</url-pattern>
</servlet-mapping>
这里需要注意的关键是,我已经指定了两个要加载的XML文件。一个是我整个应用程序的通用方法,而另一个是特定于“my-servlet”servlet 的。对于只有一个 servlet 映射的设置,这是没有意义的。但是,我的项目具有多个 servlet 映射,每个映射都有特定的 Spring 设置。
我的问题:Spring将首先加载哪个上下文ConfigLocation?它将是一般的ApplicationContext.xml还是特定的ApplicationContext.xml?更重要的是,加载的顺序是否重要?从我的调试工作来看,很明显它确实如此,因为当我将一些独立的Spring配置从一个文件移动到另一个文件时,我会遇到不同的错误。
铌:是否对多个 servlet 映射使用多个弹簧配置是一种很好的做法,这是值得商榷的。使用 XML 配置而不是新的 Java 配置也是如此。但这不是我在这里想问的。让我们试着把重点放在我的主要问题上。