You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot主项目如何覆盖依赖Jar包内的配置属性

问题原因
  • Spring Boot 配置加载遵循明确的优先级规则:带激活 Profile 标识的配置文件,优先级始终高于无 Profile 标识的默认配置文件;同时主项目根目录下./config文件夹的配置优先级,高于依赖 Jar 包内classpath路径下的配置。
  • 你当前激活了dev Profile,依赖 Jar 内的application-dev.yml属于dev Profile 专属配置,优先级高于主项目./config下无 Profile 标识的默认application.yml,因此 Jar 包内的属性值会覆盖主项目默认配置的值,最终生效值为true。
解决方法(无需修改依赖 Jar 包)

方法1:主项目新增dev Profile专属配置文件

在主项目的./config目录下新建application-dev.yml,写入以下内容:

app-configuration.org.app.shell: false

主项目./config目录下的 Profile 专属配置优先级高于依赖 Jar 内的同 Profile 配置,启动后该值会自动覆盖 Jar 内的配置生效。

方法2:主项目默认配置内嵌dev Profile配置块

如果不想新增单独的配置文件,可以直接在主项目./config/application.yml中添加dev Profile 专属配置块,效果和新增单独配置文件完全一致:

spring:
  config:
    activate:
      on-profile: dev
app-configuration:
  org:
    app:
      shell: false

方法3:启动时通过命令行参数覆盖

命令行参数的优先级高于所有配置文件,启动应用时追加对应参数即可直接覆盖属性值:

java -jar 你的主项目Jar包名.jar --app-configuration.org.app.shell=false

内容的提问来源于stack exchange,提问作者bobbyrne01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 03:33:04