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

Spring Boot中additional-location无法加载YAML格式配置文件问题

问题解决方法

原因分析

Spring Boot 2.7.x中,spring.config.additional-location的设计初衷是添加配置目录,而非直接导入单个配置文件。当用它指定带通配符的YAML文件时,框架对YAML嵌套结构的解析存在兼容问题,会默认按properties格式处理配置,因此扁平的key.value写法生效,而嵌套的YAML结构无法被正确识别。

解决方案

方案1:改用官方推荐的spring.config.import配置(优先选择)

修改application-dev.yml中的配置,替换为:

spring:
  config:
    import: classpath:teacher-${env}.yml

配置后,框架会正确解析teacher-dev.yml中的嵌套YAML结构,@Value("${teacher.name}")可正常取值。

如果需要匹配多个符合*-{env}.yml格式的文件,可使用通配符:

spring:
  config:
    import: classpath:*-${env}.yml

方案2:保留additional-location的调整写法

若坚持使用additional-location,需将配置指向文件所在目录,而非直接指定文件名:

spring:
  config:
    additional-location: classpath:/

同时确保目录下的teacher-dev.yml文件名符合Spring Boot配置文件加载规则(会自动识别*-dev.yml这类带环境后缀的文件),即可正确解析嵌套YAML结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:43:11