Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在tomcat服务器中外部化多个WebApp的配置?_Java_Spring_Spring Boot - Fatal编程技术网

Java 如何在tomcat服务器中外部化多个WebApp的配置?

Java 如何在tomcat服务器中外部化多个WebApp的配置?,java,spring,spring-boot,Java,Spring,Spring Boot,我正在运行一个独立的tomcatwebserver,其中包含多个不同的web应用程序(war文件) 问题:我想外部化一些敏感的应用程序。属性字段,如数据库帐户,每个字段针对每个应用程序进行分隔 我可以在启动时提供以下属性: --Dspring.config.additional location=/etc/java/ 问题:每个webapp都会加载相同的/etc/java/application production.properties文件!所以这没用 问题:如何按应用程序将它们分开,以便每个

我正在运行一个独立的
tomcat
webserver,其中包含多个不同的web应用程序(
war
文件)

问题:我想外部化一些敏感的
应用程序。属性
字段,如数据库帐户,每个字段针对每个应用程序进行分隔

我可以在启动时提供以下属性:
--Dspring.config.additional location=/etc/java/

问题:每个webapp都会加载相同的
/etc/java/application production.properties
文件!所以这没用

问题:如何按应用程序将它们分开,以便每个webapp都加载自己的附加外部文件

与testserver上类似:

/etc/java/myapp1/application-test.properties
/etc/java/myapp2/application-test.properties
产品:


一种方法是创建键值文件,如
test1.env、test2.env…
。内容将是:

DB_URL=test1DB
DB_USR=hi
DB_PWD=pwd
...
application.properties
中,可以使用类似于
db.url=${db\u url}的占位符


启动应用程序时,使用start(shell)脚本,
导出
在*.env中的变量,并从给定的
env
文件中获取源,以便在application.properties中填写正确的值。

创建一个只包含敏感数据的新文件:

/src/main/resources/config/application production.properties


并添加一个
.gitignore
,这样就不会提交此特定文件进行版本控制。

您使用的是maven吗?您可以使用maven概要文件来实现这一点。
DB_URL=test1DB
DB_USR=hi
DB_PWD=pwd
...