Я определил contextConfigLocation(s) в web.xml следующим образом:
<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}" />
Теперь я заметил, что никаких свойств не требуется в компоненте Spring, настроенном в servlet-context.xml или его дочернем контексте xml (beans:import ) могут быть разрешены, хотя они четко определены в propFile и могут быть разрешены из root-context.xml или его дочернего контекста xml.
Кроме того, что более болезненно,
если я определяю mvc:interceptor с mvc:mapping path="/"** внутри root-context.xml, перехватчик не вызывается для шаблона запроса ="/rest /*". Но тот же перехватчик вызывается успешно, если он настроен внутри servlet-context.xml или его дочернего xml.
Пожалуйста, дайте мне знать, если я что-то упустил или это ожидаемое поведение?
Среда:
Версия Java: 1.8.0_60, поставщик: Oracle Corporation
Название ОС: "windows 7", версия: "6.1", арка: "amd64", семейство: "dos"
Версия большинства моих зависимостей Spring, таких как (spring-context, spring-beans и т. д.), разрешена io.spring.platform:platform-bom:Brussels-SR3 как 4.3.9.RELEASE