快速熟悉后缀为yml的文件

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

相关推荐
2301_780789664 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB5 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906945 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
欧米欧5 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery5 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
学长毕设5 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
时间售卖铺6 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw6 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
步行cgn6 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc