Spring引导中的java外部化配置
我有一个外部配置文件(外部jar)。我试着跑,期待着
外部文件中的该值将覆盖内部文件中的值(application.properties
在\resource\
-在jar文件中)。
我读了Documentation并尝试了以下方法:
java -jar ccgame-1.0.jar --spring.config.location=classpath:/application.properties,file:/production.properties
这不管用
我的jar文件在\target\
目录下,我的production.properties
也在\target\
目录下
我如何解决我的问题
- 我应该把外部配置文件放在哪里李>
- 我该怎么办李>
# 1 楼答案
按照惯例,Spring Boot会寻找一个外部化的配置文件——应用程序。属性或应用程序。yml–按以下优先顺序在4个预定位置:
你可以提交申请。4个位置中的任意一个位置的属性,无需给出应用位置。属性,而执行jar。如果您想指定任何其他自定义位置,则必须在执行jar时提供配置位置的路径:
资料来源:https://www.baeldung.com/spring-properties-file-outside-jar
# 2 楼答案
从Spring Boot 2.0开始,可以使用属性
spring.config.additional-location
。使用此属性,您可以设置外部配置文件,但该配置中的属性将仅覆盖内部配置中的相应属性,其他属性保持不变更多关于它的信息请访问docs
如果需要完全覆盖整个配置,则继续使用
spring.config.location
属性