Quarkus无需重新打包uber jar如何读取更新的application.properties配置?
Quarkus 运行时覆盖内置配置问题解答
完全可以在不重新打包jar包的前提下覆盖Quarkus内置的application.properties配置,也支持运行时指定自定义配置文件路径,具体实现方式如下:
方式1:启动时指定外部配置文件路径
直接在启动命令中添加
quarkus.config.locations系统参数指定自定义配置文件的绝对路径即可,示例命令如下:java -Dquarkus.config.locations=/path/to/custom-application.properties -jar your-app.jar如需加载多个配置文件,用逗号分隔多个路径即可,外部配置文件中同key的配置会自动覆盖jar包内置的配置值。
方式2:使用默认扫描的外部配置路径
Quarkus启动时会自动扫描jar包同级目录下
config文件夹内的application.properties配置,优先级高于内置配置。你只需要在jar包运行目录下创建config文件夹,放入修改后的配置文件,重启服务即可生效,无需添加任何启动参数。方式3:启动参数直接覆盖单条配置
如果仅需要修改少量配置项,可以直接在启动命令中通过系统参数指定配置值,不需要单独准备配置文件,示例如下:
# 示例:修改服务启动端口为8082 java -Dquarkus.http.port=8082 -jar your-app.jar
以上方法对普通jar包和uber(fat)jar包均生效,所有外部配置的优先级都高于jar包内置的
application.properties,完全不需要重新打包修改内置文件。
如果需要实现不重启服务就能动态加载更新后的配置,可以给使用@ConfigProperty注入配置的Bean添加@RefreshScope注解,配置更新后调用Quarkus提供的刷新端点即可生效。
内容的提问来源于stack exchange,提问作者rightjoin
相关产品推荐
相关产品推荐

