如何正确覆盖Spring中的内部配置文件?

时间:2019-01-14 01:32:32

标签: java spring-boot

我在classpath的资源文件夹中有一个内部 application.yml 配置文件。

我有一个外部配置文件: /home/username/config.properties ,它覆盖了一些要在服务器上下文中运行的字段。

我希望外部配置文件中的字段覆盖内部文件,并在内部文件中保留字段(如果未在外部文件中定义的话)。

建议Spring - how to override internal config file with external file的答案无效。

例如,以下命令对我不起作用:

href

我如何达到期望的结果?

编辑:仅在Linux上会发生此问题。当我在Windows 10计算机上使用覆盖的配置文件运行它时,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

好像您有太多/,请尝试:

java -jar application.jar --spring.config.location=classpath:/,file:/home/minister/config.properties

答案 1 :(得分:0)

您可以将路径传递到文件,相对于.jar文件,例如

java -jar application.jar -Dspring.config.location=./config/application.properties

java -jar application.jar -Dspring.config.location=../common/config

这两项工作中的任何一项。有关外部化配置如何工作的更多详细信息,请参考-Spring Documentation

希望这会有所帮助。