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

Spring Boot加载双yml配置文件的属性覆盖规则咨询

Spring Boot 多YAML配置文件属性合并规则
  • 结论:Spring Boot加载多配置文件时不会整体覆盖上层的整个配置块,只会按优先级对同层级的同名属性做覆盖,未在高优先级配置中定义的属性会自动继承低优先级配置的取值。
  • 优先级说明:你场景中的服务专属配置ui-service.yml优先级高于通用配置application.yml,同名属性会优先取ui-service.yml的配置值。
  • 你提到的场景验证:如果你删除ui-service.yml中的spring.profiles: DEV配置,应用会自动继承application.yml中的spring.profiles取值,同时spring.datasource相关配置会正常使用ui-service.yml中定义的自定义值,二者互不影响。

合并效果示例

你给出的两个配置最终合并后的spring配置块效果如下:

spring:
  profiles: DEV # 若ui-service删除该配置则自动继承application的取值
  jmx:
    enabled: false # 二者配置一致,无差异
  datasource:
    url: urlB # 覆盖application中的urlA
    driver-class-name: # 取ui-service的配置值
    username: // # 取ui-service的配置值
    password: .. # 取ui-service的配置值
  jpa:.. # ui-service未配置的jpa属性会自动继承application中的对应配置

补充说明:该合并规则对所有Spring Boot的配置源都生效,包括不同激活profile对应的配置文件、命令行参数、环境变量等配置源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:06:04