我试图理解为什么Spring Roo将database.properties放在META-INF / spring中的原因,它将作为WAR的一部分进行部署。
当然,数据库属性是特定于环境的,应该在WAR之外,可以在不重建的情况下更改它们吗?我即将更改application-context.xml中的行以在类路径的任何位置搜索属性文件,并将文件移动到不与WAR打包的位置。
有什么东西我没有到这里会让我后悔吗?
答案 0 :(得分:5)
我使用Spring的PropertyPlaceholderConfigurer处理了这个问题,包括类路径上的属性文件和文件系统上的属性文件:
<context:property-placeholder
location="classpath*:META-INF/spring/*.properties,file:myapp*.properties"/>
如果应用程序启动时(或运行测试等)当前目录中有myapp * .properties文件,它将覆盖war / ear / whatever中烘焙的文件的属性。你可以取出明星但是你必须把文件存在。
答案 1 :(得分:2)
这可能会影响(打破)各种database
commands之类的
database properties set
database properties remove
database properties list
IMO,您应该将其保留在META-INF/spring
下。