web.xml中contextConfigLocation之间的关系

时间:2017-09-23 16:34:19

标签: spring spring-mvc spring-config

我在web.xml中定义了 contextConfigLocation ,如下所示:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/app/servlet-context.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

在root-context.xml中,我有

<context:property-placeholder location="${propFile}" />

现在,我发现在 servlet-context.xml 中配置的Spring bean或其子上下文xml( beans:import <)中需要 no 属性/ strong>)可以解决,虽然它们在 propFile 中明确定义,并且可以从 root-context.xml 或其子上下文xml中解析。

另外,更痛苦的是

如果我在root-context.xml中使用 mvc:mapping path =“/ ”**定义 mvc:interceptor ,则不会为请求模式调用拦截器= “/休息/*”。但是如果在servlet-context.xml或其子xml中配置,则会成功调用相同的拦截器。

如果我遗失了某些内容或是预期的行为,请告诉我?

环境

Java版本:1.8.0_60,供应商:Oracle Corporation

操作系统名称:“windows 7”,版本:“6.1”,arch:“amd64”,系列:“dos”

我的大多数Spring依赖项的版本(如spring-context,spring-beans等)都由io.spring.platform解决:platform-b​​om:Brussels-SR3为 4.3.9.RELEASE

0 个答案:

没有答案