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