一、YAML 是什么?
YAML 文件(通常扩展名是 .yml 或 .yaml)
入手一个项目,查看各种配置,先看yml文件

YAML 的全称是 "YAML Ain't Markup Language" (YAML 不是标记语言),它是一种人类可读的数据序列化格式 ,专门用来写配置文件。
它像 JSON 或 XML 一样,可以存储数据(比如键值对、列表、嵌套结构)。
二、YAML 的基本语法
1. 键值对(Key-Value)
用 : 分隔键和值,冒号后必须加空格:
XML
name: "张三"
age: 25
2. 嵌套结构(字典)
用缩进表示层级关系(通常用 2 个空格,不能用 Tab):
XML
person:
name: "李四"
age: 30
address:
city: "北京"
zip: "100000"
3. 列表(数组)
用 - 表示列表项,缩进对齐:
XML
hobbies:
- "游泳"
- "读书"
- "编程"
4. 多行字符串
用 | 或 > 表示多行文本:
XML
description: |
这是一个多行文本,
可以换行显示,
保留格式。
5. 注释
用 # 开头:
XML
# 这是注释,不会被程序读取
version: 1.0 # 版本号
🚀 三、YAML 的用途
YAML 的主要用途是写配置文件,因为它:
易读易写:比 JSON/XML 更简洁,适合人类直接编辑。
支持复杂结构:可以嵌套对象、列表,适合配置复杂系统。
被广泛支持 :几乎所有编程语言都有 YAML 解析库(如 Python 的 PyYAML、Java 的 SnakeYAML)
💻 四、YAML 的常见使用场景
1. Spring Boot 项目配置(application.yml)
Spring Boot 默认用 YAML 写配置,比如数据库连接、服务器端口等:
XML
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: 123456
2. Docker 配置(docker-compose.yml)
XML
version: "3"
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: "123456"
3. Kubernetes 配置(deployment.yml)
定义容器部署规则:
XML
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
4. CI/CD 流水线配置(如 GitHub Actions)
定义自动化构建步骤:
XML
name: Build and Test
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm install
- run: npm test
5. 游戏配置(如 Unity 的 ProjectSettings.yml)
存储游戏参数:
XML
Player:
health: 100
speed: 5.0
Enemies:
- type: "Zombie"
damage: 10
- type: "Ghost"
damage: 5
⚠️ 五、YAML 的注意事项
缩进必须一致:只能用空格(通常 2 个),不能用 Tab,否则会报错。
键名不需要引号(除非包含特殊字符):
XML
# 正确
name: "张三"
# 也可以省略引号(如果值是纯字母或数字)
name: 张三
布尔值 :直接写 true/false(不用引号):
XML
debug: true
数字:直接写数字(不用引号):
XML
port: 8080
📊 六、YAML vs JSON vs XML
| 特性 | YAML | JSON | XML |
|---|---|---|---|
| 可读性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| 语法 | 缩进 + :/- |
括号 + : |
标签 <tag> |
| 注释 | 支持 # |
不支持 | 支持 <!-- --> |
| 用途 | 配置文件 | 数据交换(API 响应) | 文档标记(如 HTML) |
🎯 总结
YAML 是干啥的?
专门用来写配置文件的,比 JSON/XML 更简洁。
啥时候用?
需要配置复杂系统时(如 Spring Boot、Docker、K8s)。
怎么写?
记住 键: 值 + 缩进,避免 Tab 和多余符号。