我正在运行一个独立的tomcat
网络服务器,其中包含多个不同的Web应用程序(war
文件)。
问题:我想外部化一些敏感的application.properties
字段,例如数据库帐户,每个字段对于每个应用程序都是分开的。
我可以在启动时提供以下属性:
--Dspring.config.additional-location=/etc/java/
问题:每个Web应用程序都将加载相同的/etc/java/application-production.properties
文件!所以那无济于事。
问题:如何按应用程序将它们分开,以便每个webapp都加载自己的其他外部文件?
就像在测试服务器上一样:
/etc/java/myapp1/application-test.properties
/etc/java/myapp2/application-test.properties
产品:
/etc/java/myapp1/application-production.properties
/etc/java/myapp2/application-production.properties
答案 0 :(得分:1)
一种可行的方法是,创建键值文件,例如test1.env, test2.env...
。内容为:
DB_URL=test1DB
DB_USR=hi
DB_PWD=pwd
...
在您的application.properties
中,您可以使用占位符,例如db.url=${DB_URL}
在启动应用程序时,使用启动(外壳)脚本在{.1.env中使用export
变量,并提供给定的env
文件,以便可以在应用程序中填充正确的值.properties。
答案 1 :(得分:0)
创建一个仅包含敏感数据的新文件:
/src/main/resources/config/application-production.properties
并添加一个.gitignore
,以便不会提交此特定文件进行版本控制。