4

目前,我认为默认的,它复制到

target/myproject/WEB-INF/classes

所以在部署时它不会获取上下文。

另外,我想引用一个服务器特定的配置文件database.properties,我想把它放在 tomcat/conf 中,然后在applicationContext.xml中引用它,我该怎么做?

另外(2),我的印象是这是一种相当标准和体面的设置方式 - 如果我错了,请纠正我。

编辑 服务器特定的配置文件我使用这个

<context:property-placeholder 
      location="file:${catalina.home}/conf/database.properties" 
      ignore-unresolvable="true"
 />
4

2 回答 2

6

如果您需要保留applicationContext.xml作为类路径资源,您可以ContextLoaderListener通过添加以下行来配置以从类路径中选择它web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

这比配置 Maven 将其复制到WEB-INF.

关于第二个问题,您可以配置PropertyPlaceholderConfigurer或从文件系统<context:property-placeholder>加载文件。.properties

于 2011-11-17T16:41:00.443 回答
2

对于您的标题问题:通常在 .war maven 模块中,您会将与 Web 相关的资源放在 src/main/webapp 下,而不是 src/main/resources 下。然后 maven 插件会自动选择它们,因为它符合约定。因此,将您的 applicationContext.xml 移动到 src/main/webapp/WEB-INF

另一种选择是按照文档中的描述配置 webResources

对于第二个问题,您可以查看PropertyPlaceHolderConfigurer。你只需要得到正确的路径。

于 2011-11-17T16:38:49.437 回答