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

Spring Boot中YML配置文件属性名忽略连字符的问题咨询

这是预期行为,属于Spring Boot的宽松绑定特性

Spring Boot的属性处理机制支持宽松绑定(Relaxed Binding),它会自动将不同命名风格的属性视为等价,包括:

  • 连字符分隔(比如joke-url)
  • 驼峰式(比如jokeUrl)
  • 下划线分隔(比如joke_url)
  • 全大写加下划线(比如JOKE_URL)

在你的场景里:

  1. 当配置application.joke-url: url1时,Spring会将其归一化为内部属性键application.jokeurl,所以不管你用@Value("${application.jokeurl}")还是@Value("${application.joke-url}"),都会注入同一个值url1。
  2. 当你同时添加application.jokeurl: url2时,这两个配置最终会映射到同一个内部键,而YAML配置中后出现的属性会覆盖前面的,所以最终注入的值是url2,看起来像是joke-url被忽略了,本质是同一属性键的覆盖。

如果需要区分这两个属性,你需要避免使用会被宽松绑定归一化的命名,比如使用不同的前缀或者完全不同的名称,而不是仅靠连字符有无来区分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:04:59