我有一个使用多个 web 片段的主要 webapp 项目。它在 Tomcat 8 上运行。
在我的web.xml文件中,我有一个对主要 Spring 上下文的引用,例如:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:META-INF/spring/mainCtx.xml
</param-value>
</context-param>
在WEB-INF/lib
文件夹中,我有一个在它自己的文件夹下componentA.jar
包含一个web-fragment.xmlMETA-INF
的文件夹(不同于主应用程序的META-INF
文件夹):
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:META-INF/spring/componentA_Ctx.xml
</param-value>
</context-param>
但是,似乎 Spring 在 jar 中找不到我的 compomentA_Ctx.xml。进一步阅读后,似乎是因为contextConfigLocation
2 个上下文文件中存在名称冲突。
我的目标是为组件提供可插入性,使其独立于主 webapp。因此我想单独加载它的上下文。
无论如何让Spring在这两个位置寻找上下文?或者一种在web.xml和web-fragment.xml中分别定义上下文的方法?