采用键值对的方法存储值
key: value
冒号后面要有空格
name: 张三
标量
标量是最基础的数据类型,不可再分的值,他们一般用于表示单个的变量,有以下七种:
- 字符串
- 布尔值
- 整数
- 浮点数
- Null
- 时间
- 日期
# 字符串string.value: Hello!我是陈皮!# 布尔值,true或falseboolean.value: trueboolean.value1: false# 整数int.value: 10int.value1: 0b1010_0111_0100_1010_1110 # 二进制# 浮点数float.value: 3.14159float.value1: 314159e-5 # 科学计数法# Null,~代表nullnull.value: ~# 时间,时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区datetime.value: !!timestamp 2021-04-13T10:31:00+08:00# 日期,日期必须使用ISO 8601格式,即yyyy-MM-dddate.value: !!timestamp 2021-04-13
对象
我们知道单个变量可以用键值对,使用冒号结构表示 key: value,注意冒号后面要加一个空格。可以使用缩进层级的键值对表示一个对象,如下所示:
当然也可以使用person:name: 陈皮age: 18man: true
key:{key1: value1, key2: value2, ...}的形式,如下:person: {name: 陈皮, age: 18, man: true}
数组
可以用短横杆加空格 -开头的行组成数组的每一个元素,如下的address字段:
如果数组字段的成员也是一个数组,即二维数组,可以使用嵌套的形式,如下:person:name: 陈皮age: 18man: trueaddress:- 深圳- 北京- 广州# 或者使用如下形式address: [深圳,北京,广州]
如果数组成员是一个对象,则用如下两种形式形式: ```yaml childs: - name: 小红 age: 10 - name: 小王 age: 15person:name: 陈皮age: 18man: trueaddress: [深圳, 北京, 广州]twoArr:-- 2- 3- 1-- 10- 12- 30
或者使用如下形式
childs: [{name: 小红, age: 10}, {name: 小王, age: 15}]
<a name="fca196e0"></a>## 文本块如果你想引入多行的文本块,可以使用**|**符号```yamlperson:name: |Hello Java!!I am fine!Thanks! GoodBye!
和双引号效果一致
显示指定类型
有时我们需要显示指定某些值的类型,可以使用 !(感叹号)显式指定类型。!单叹号通常是自定义类型,!!双叹号是内置类型,例如:
# 指定为字符串string.value: !!str HelloWorld!# !!timestamp指定为日期时间类型datetime.value: !!timestamp 2021-04-13T02:31:00+08:00
内置的类型如下:
- !!int:整数类型
- !!float:浮点类型
- !!bool:布尔类型
- !!str:字符串类型
- !!binary:二进制类型
- !!timestamp:日期时间类型
- !!null:空值
- !!set:集合类型
- !!omap,!!pairs:键值列表或对象列表
- !!seq:序列
- !!map:散列表类型
引用
引用会用到 &锚点符合和 星号符号,&用来建立锚点,<< 表示合并到当前数据, 用来引用锚点。 ```yaml xiaohong: &xiaohong name: 小红 age: 20
dept: id: D15D8E4F6D68A4E88E <<: *xiaohong
最终显示效果为:```yamlxiaohong:name: 小红age: 20dept:id: D15D8E4F6D68A4E88Ename: 小红age: 20
还有一种文件内引用,引用已经定义好的变量,如下:
base.host: https://chenpi.comadd.person.url: ${base.host}/person/add
单文件多配置
可以在同一个文件中,实现多文档分区,即多配置。在一个yml文件中,通过 — 分隔多个不同配置,根据spring.profiles.active 的值来决定启用哪个配置(但是一般情况下使用多文件,根据文件名称application-dev.yml,进行划分)
#公共配置spring:profiles:active: pro # 指定使用哪个文档块---#开发环境配置spring:profiles: dev # profiles属性代表配置的名称server:port: 8080---#生产环境配置spring:profiles: proserver:port: 8081
