快速熟悉后缀为yml的文件

一、YAML 是什么?

YAML 文件(通常扩展名是 .yml.yaml

入手一个项目,查看各种配置,先看yml文件

YAML 的全称是 "YAML Ain't Markup Language" (YAML 不是标记语言),它是一种人类可读的数据序列化格式 ,专门用来写配置文件

它像 JSONXML 一样,可以存储数据(比如键值对、列表、嵌套结构)。

二、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 和多余符号。

相关推荐
foolishlee1 分钟前
Neon wal日志处理流程
数据库
rosmis7 分钟前
agent各指标定义
android·java·开发语言
星马梦缘9 分钟前
数据库 事务管理 专项作战记录
数据库
mifengxing9 分钟前
Java 集合进阶(一)
java·开发语言·数据结构·复习笔记
雾里0不看花12 分钟前
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
linux·网络·tcpdump
名字还没想好☜24 分钟前
Python concurrent.futures 实战:用 ThreadPoolExecutor 并发处理 + as_completed 收结果
数据库·python·php·并发
空杆推不起37 分钟前
穿透数据库 JOIN 核心:语法分类、底层算法、生产优化与高频坑点全解析
数据库·oracle
令狐前生1 小时前
Intellij IDEA 2025 破解安装
java·ide·intellij-idea
xqqxqxxq1 小时前
MySQL 数据类型笔记
数据库·笔记·mysql
数聚天成DeepSData1 小时前
数聚天成 DeepSData 数据价值落地实战指南
java·maven·devops