YAML 缩进导致配置不生效的排查案例
通过 datasource 案例检查 YAML 层级、profile 覆盖和最终绑定值。
用一个 datasource 配置案例说明 YAML 缩进如何影响 Spring Boot 配置绑定,以及如何在 IntelliJ IDEA 中检查。
问题现象
应用启动后仍然连接默认数据源,或者提示找不到 datasource url。开发者检查 application.yml 时发现 spring.datasource.url 明明存在,但运行时没有使用。
这种情况很容易误判为驱动依赖、数据库连接或插件补全问题。实际原因可能只是 url、username、password 没有正确缩进到 datasource 下面。
spring:
datasource:
url: jdbc:postgresql://localhost:5432/app
username: app
password: secret正确配置
正确写法是让 url、username、password 都作为 datasource 的子节点。视觉上只差两个空格,但对 YAML 来说这是不同结构。
在 IntelliJ IDEA 中,可以把光标放在 key 上观察层级,也可以使用格式化和折叠辅助确认父子关系。补全建议通常也会随着层级变化而改变。
spring:
datasource:
url: jdbc:postgresql://localhost:5432/app
username: app
password: secret验证步骤
修正后先用本地 profile 启动应用,确认启动日志中使用了期望的数据源。若项目启用了 Actuator,可以进一步检查 env 或 configprops 信息,确认最终绑定值。
如果仍不生效,再检查 application-dev.yml 是否覆盖了 datasource,或者启动参数是否指定了其他配置位置。
- 格式化 YAML 文件并检查层级
- 搜索所有 application-*.yml 中的 datasource
- 确认 active profile
- 查看启动日志或 Actuator 输出
相关文章
本站由 ErickPang 独立维护,与 Spring、JetBrains 或 Broadcom 无官方关联。