application.yml 必须严格遵循缩进对齐、冒号后加空格、大小写敏感、禁用 tab 等规则,否则项目启动失败;支持层级结构、对象、列表、多环境(--- 分隔)、变量引用及锚点复用。

直接写标准的 application.yml 文件,关键不是“多”,而是“准”:缩进对齐、冒号后空格、大小写敏感、不混用 tab——这些细节错一点,项目就起不来。
基础结构:缩进即层级,空格是命门
YAML 用缩进表示嵌套,不是靠大括号或等号。同一层级的 key 必须左对齐,且只能用空格(严禁 tab)。
-
正确写法:冒号后面必须有一个空格,比如
server:后换行,port: 8080(两个空格缩进) -
常见错误:
port:8080(冒号后没空格)、port: 8080(用了 tab)、port: 8080(看似对,但前面缩进用了 tab 混入) -
大小写敏感:
spring.datasource.url和spring.datasource.URL是两个不同配置,后者通常无效
常用配置类型:字符串、对象、列表怎么写
YAML 原生支持多种数据结构,不用像 properties 那样拼接或转义。
-
普通值:数字、布尔、字符串直接写,如
debug: false、app.name: "user-service";双引号内支持\n换行,单引号则原样输出 -
嵌套对象:用缩进表示,比如数据库配置:
spring:<br> datasource:<br> url: jdbc:mysql://localhost:3306/mydb<br> username: root<br> password: 123456
-
列表(数组):用短横线加空格,如日志级别排除:
logging:<br> level:<br> root: info<br> com.example: debug<br> exclude:<br> - org.springframework.boot<br> - com.alibaba.druid
多环境配置:用 --- 分隔,profile 控制启用
一个文件搞定 dev/test/prod,不用建多个文件。
- 用
---分隔不同文档块,每个块开头声明spring.profiles.active或spring.profiles - 示例:
spring:<br> profiles:<br> active: dev<br><br>---<br><br>spring:<br> profiles: dev<br>server:<br> port: 8081<br><br>---<br><br>spring:<br> profiles: prod<br>server:<br> port: 80<br> address: 0.0.0.0
- 启动时指定
--spring.profiles.active=prod,或在 yml 中设spring.profiles.active默认激活哪个
敏感信息与变量引用:避免硬编码,支持占位符
密码、密钥别写死,用系统变量或随机值替代。
- 引用环境变量:
spring.datasource.password: ${DB_PASSWORD:default123}(冒号后是默认值) - 使用 Spring Boot 内置随机值:
app.secret: ${random.uuid}、app.port: ${random.int[8000,9000]} - 跨配置复用:用
&ref定义锚点,*ref引用,适合重复的 url、timeout 等通用参数
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











