yaml-syntax
# A simple YAML example
# scalar values can be expressed as string, integer, or float
string_value: Hello, World!
integer_value: 42
float_value: 3.14159
# lists can be expressed as sequences of items
list_value:
- item 1
- item 2
- item 3
# mappings can be expressed as key-value pairs
mapping_value:
key 1: value 1
key 2: value 2
Key 3: value 3
# A list of object
Person:
- name: John Doe
age: 32
city: New York
- name: Jane Doe
city: Los Angeles
- name: Bob Smith
age: 44
city: Chicago
# you can use quotes to preserve special characters
quoted_value: "Hello, World!"
# you can use multi-line strings for more complex values
multiline_value: |
This is a
multi-line
string value.
# you can use inline styles to make the output more compact
inline_mapping: {key 1: value 1, key 2: value 2}
# you can also include null, boolean, and date values
null_value: null
boolean_value: true
date_value: 2022-12-31
# 在 YAML 中,三个连续的破折号(---)被称为文档起始标记,用于标识一个独立的 YAML 文档。如果 YAML 文件包含多个文档,则每个文档都必 须以三个连续的破折号开头。
---
# YAML 配置文件
# 定义锚点
address: &address
street: 123 Main St.
city: San Francisco
state: CA
zip: 94111
# 使用锚点 (锚点不能跨文档使用)
john:
name: John Doe
age: 30
address: *address
jane:
name: Jane Doe
age: 25
address: *address
基本语法
- 大小写敏感
- 使用缩进表示层级关系
- 在 YAML 中,缩进与语法结构相关,因此使用空格而不是 tab 字符来表示缩进是标准做 法
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
数据类型
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list),注意数组是有序的
- 纯量(scalars):单个的、不可再分的值
使用环境变量
web:
image: "webapp:${TAG}"
YML 和 JSON 都是有类型的
- hahaSystemId2 即使在 java config 类的字段类型是
String
, 也会得到6
而非06
, 因为 yml 这里已经有类型了,被当作数字对待,然后就变成 6 了 - 如果需要保留 0在前面,需要用引号引起来
something:
systemId: 154
hahaSystemId1: "06"
hahaSystemId2: 06