1

我有一个外部配置文件(外部 jar)。我尝试运行并期望外部文件中的值将覆盖内部文件中的值(application.properties\resource\- jar 文件中)。我阅读了文档并尝试了这个:

java -jar ccgame-1.0.jar --spring.config.location=classpath:/application.properties,file:/production.properties

这不起作用。

我在目录中的 jar 文件\target\和我的production.properties也是(在\target\

我该如何解决我的问题?

  • 我应该把外部配置文件放在哪里?
  • 我必须做什么?
4

2 回答 2

4

从 Spring Boot 2.0 开始,可以使用 property spring.config.additional-location。使用此属性,您可以设置外部配置文件,但该配置中的属性只会覆盖内部配置中的相应属性,而其他属性保持不变。

更多关于它的文档

如果您需要完全覆盖整个配置,请继续使用spring.config.location属性。

于 2020-09-18T08:57:24.667 回答
0

按照惯例,Spring Boot 按以下优先顺序在 4 个预定位置查找外部化配置文件——application.properties 或 application.yml:

  1. /config 当前目录的子目录
  2. 当前目录
  3. 类路径 /config 包
  4. 类路径根

您可以将 application.properties 放在 4 个位置中的任何一个,而无需在执行 jar 时提供 application.properties 的位置。如果您想提供任何其他自定义位置,则必须在执行 jar 时提供配置位置的路径:

java -jar -Dspring.config.location=<path-to-file> myProject.jar

来源:https ://www.baeldung.com/spring-properties-file-outside-jar

于 2020-09-18T08:21:55.110 回答