有没有一个很好的理由让Spring Roo将database.properties放入META-INF / spring?

时间:2010-09-18 22:06:49

标签: java spring spring-roo

我试图理解为什么Spring Roo将database.properties放在META-INF / spring中的原因,它将作为WAR的一部分进行部署。

当然,数据库属性是特定于环境的,应该在WAR之外,可以在不重建的情况下更改它们吗?我即将更改application-context.xml中的行以在类路径的任何位置搜索属性文件,并将文件移动到不与WAR打包的位置。

有什么东西我没有到这里会让我后悔吗?

2 个答案:

答案 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下。