目前,我认为是默认值,它会复制到
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"
/>
答案 0 :(得分: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
文件。
答案 1 :(得分:2)
对于标题问题:通常在.war maven模块中,您将把与Web相关的资源放在src / main / webapp下,而不是src / main / resources。然后maven插件会自动拾取它们,因为它符合约定。因此,将applicationContext.xml移动到src / main / webapp / WEB-INF
另一种选择是按照documentation
中的描述配置webResources对于第二个问题,您可以查看PropertyPlaceHolderConfigurer。你只需要纠正这条路径。