3

我试图了解 Spring Roo 将 database.properties 放置在 META-INF/spring 中的原因,它将作为 WAR 的一部分部署在其中。

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

有什么我没有到达这里会让我后悔的吗?

4

2 回答 2

5

我已经使用 Spring 的 PropertyPlaceholderConfigurer 处理了这个问题,并在类路径中包含属性文件,在文件系统中包含一个属性文件:

<context:property-placeholder 
    location="classpath*:META-INF/spring/*.properties,file:myapp*.properties"/>

如果在应用程序启动(或运行测试等)时当前目录中有 myapp*.properties 文件,它将覆盖烘焙到 war/ear/whatever 中的文件的属性。你可以取出星星,但你必须有文件存在。

于 2010-10-04T17:20:33.220 回答
2

这可能会影响(中断)各种database命令,例如

  • database properties set
  • database properties remove
  • database properties list

IMO,你应该把它放在META-INF/spring.

于 2010-09-18T22:13:33.433 回答