我有一个外部配置文件(外部jar)。我尝试运行并期望
外部文件中的值将覆盖内部文件中的值(jar文件中application.properties
中的{\resource\
中的值)。
我读了Documentation,然后尝试以下方法:
java -jar ccgame-1.0.jar --spring.config.location=classpath:/application.properties,file:/production.properties
这不起作用。
我的jar文件位于\target\
目录,我的production.properties
也位于\target\
)
如何解决我的问题?
答案 0 :(得分:2)
从Spring Boot 2.0开始,可以使用属性spring.config.additional-location
。使用此属性,您可以设置外部配置文件,但该配置中的属性将仅覆盖内部配置中的相应文件,而其他属性保持不变。
有关docs的更多信息。
如果您需要完全覆盖整个配置,请继续使用spring.config.location
属性。
答案 1 :(得分:1)
按照惯例,Spring Boot按照以下优先顺序在4个预定的位置中寻找一个外部化的配置文件– application.properties或application.yml:
您可以将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