YAML配置介绍

文章目录

    • [一、YAML 的核心特点](#一、YAML 的核心特点)
    • [二、一个简单的 YAML 配置示例](#二、一个简单的 YAML 配置示例)
      • [对应结构(类似 JSON)](#对应结构(类似 JSON))
    • [三、YAML 基本语法规则](#三、YAML 基本语法规则)
      • [1. 缩进表示层级(非常关键)](#1. 缩进表示层级(非常关键))
      • [2. 键值对(Key-Value)](#2. 键值对(Key-Value))
      • [3. 列表(数组)](#3. 列表(数组))
      • [4. 嵌套结构](#4. 嵌套结构)
      • [5. 布尔值 / 数字](#5. 布尔值 / 数字)
    • [四、YAML 常见使用场景](#四、YAML 常见使用场景)
      • [1. DevOps / 运维](#1. DevOps / 运维)
      • [2. CI/CD](#2. CI/CD)
      • [3. 后端配置](#3. 后端配置)
      • [4. 前端/工程化工具](#4. 前端/工程化工具)
    • [五、YAML vs JSON(快速对比)](#五、YAML vs JSON(快速对比))

YAML( YAML Ain't Markup Language )是一种 人类可读的数据序列化格式 ,常用于 配置文件 。所谓"YAML配置",就是用 YAML 语法写的配置文件,用来定义程序的参数、环境、结构等。


一、YAML 的核心特点

  • 可读性强:接近自然语言
  • 用缩进表示层级 (不像 JSON 用 {})
  • 支持多种数据类型:字符串、数字、数组、对象等
  • 广泛用于工程领域(DevOps、后端、AI等)

二、一个简单的 YAML 配置示例

yaml 复制代码
server:
  host: localhost
  port: 8080

database:
  type: mysql
  username: root
  password: 123456

features:
  - login
  - register
  - payment

对应结构(类似 JSON)

json 复制代码
{
  "server": {
    "host": "localhost",
    "port": 8080
  },
  "database": {
    "type": "mysql",
    "username": "root",
    "password": "123456"
  },
  "features": ["login", "register", "payment"]
}

三、YAML 基本语法规则

1. 缩进表示层级(非常关键)

yaml 复制代码
a:
  b:
    c: 1

👉 必须用空格(通常 2 个),不能用 Tab


2. 键值对(Key-Value)

yaml 复制代码
name: Ethan
age: 30

3. 列表(数组)

yaml 复制代码
items:
  - apple
  - banana
  - orange

4. 嵌套结构

yaml 复制代码
user:
  name: Ethan
  skills:
    - coding
    - management

5. 布尔值 / 数字

yaml 复制代码
enabled: true
count: 10
price: 9.99

四、YAML 常见使用场景

1. DevOps / 运维

  • Docker → docker-compose.yml
  • Kubernetes → deployment.yaml

2. CI/CD

  • GitHub Actions → .github/workflows/*.yml

3. 后端配置

  • Spring Boot → application.yml

4. 前端/工程化工具

  • Webpack / Vite / ESLint 等工具的配置

五、YAML vs JSON(快速对比)

特性 YAML JSON
可读性 很高 一般
语法 简洁(靠缩进) 严格(大括号)
注释 支持 # 不支持
易出错点 缩进错误 逗号/括号

相关推荐
一条小小yu1 分钟前
为什么使用springboot
java·spring boot·后端
Elastic 中国社区官方博客9 分钟前
Kubernetes attributes processor v1:它对 EDOT Collector 意味着什么
java·大数据·elasticsearch·搜索引擎·贪心算法·kubernetes·全文检索
Sarvartha14 分钟前
对象创建与引用
java·开发语言
大侠归来1 小时前
C语言与C++在基础语法上的区别
java·c语言·c++
小宋10211 小时前
SQL + RAG 混合问答实战:结构化指标与文档证据如何统一路由
java·jvm·人工智能·sql
bro_Java6661 小时前
链表进阶2:双向链表的构建
java·数据结构·链表
DianSan_ERP2 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
Joe_Wang52 小时前
【从0到1学习JVM · 13】点进JDK源码只有一个分号?搞懂本地方法栈与JNI机制
java·jvm·学习·本地方法栈
AI 算法大模型备案~当当2 小时前
各地备案数量怎么看:一份属地公告的认读与台账方法
java·数据库·人工智能
智鸟科技GemeOpen开发者智能设备2 小时前
GemeOpen 智能音箱 GSSM0B - 播放控制(Java示例)
java·开发语言·智能音箱