yml 我地在springboot 里见得多了.
但yaml 跟yml 是同一种语法的东西, 历史原因例如springboot, docker-compose 仍然在使用yml格式。
但是一些新的tools, 例如ansible 的playbook, k8s 的资源编排已经默认使用yaml后序.
本文来深究yaml的编写方式。
写法1: 用冒号结构表示
例如
Jack:
name: Jack Black
age: 20
Bill:
id: 20
height: 180
写法2: 用大括号来写行内对象
Jack: {name: Jack Black, age: 20}
Bill: {id: 20, height: 180}
写法1: 一组以 - 开头的值构成1个数组
例如:
People:
- Jack:
name: Jack Black
age: 20
- Bill: {id: 20, height: 180}
写法2: 用中括号来写行内对象
People: [Jack, Bill]
# 数值直接以数学方式写
number: 12.31
# Boolean 用 true or false
isCreated: true
# null 用 ~ 表示
fruit: ~
# 时间采用 iso8061 格式
createdTime: 2022-10-11t11:44:23.10-05:00
# 日期采用复合 iso8061 格式
date: 1992-09-03
# String 一般不用带引号
words: helloworld
# 如果 string的值带特殊字符, 则需要被单引号括住
str: 'hello: world'
& 锚点和 * 别名,可以用来引用:
例子
SIT: &SIT_HOST
hostname: project.sit.hk.hsbc
port: 2001
SIT_RO1:
schema: RO1
<<: *SIT_HOST
SIT_RO2:
schema: RO2
<<: *SIT_HOST
效果相当于:
SIT: &SIT_HOST
hostname: project.sit.hk.hsbc
port: 2001
SIT_RO1:
schema: RO1
hostname: project.sit.hk.hsbc
port: 2001
SIT_RO2:
schema: RO2
hostname: project.sit.hk.hsbc
port: 2001