yaml文件
yaml文件
yaml文件的后缀为.yml或.yaml
基本语法规则:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
#
表示注释,从它开始到行尾都被忽略- 锚点&:标注一个内容,锚点名称自定义
- 引用*:使用被标注的内容<<: *锚点名
- 在yaml里,用on、1、true来表示true,off、0、false来表示false
- yaml中,空值可以用null或~表示
1、对象类型
1.1对象的一组键值对,使用冒号结构表示
name: Steve
age: 18
1.2Yaml 也允许另一种写法,将所有键值对写成一个行内对象
hash: { name: Steve, age: 18 }
2 、数组类型
2.1一组连词线开头的行,构成一个数组
animal - Cat - Dog
2.2数组也可以采用行内表示法
animal: [Cat, Dog]
3、复合结构
3.1对象和数组可以结合使用,形成复合结构
languages: - Ruby - Perl - Python websites: YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org
4 、纯量
1 字符串 布尔值 整数 浮点数 Null 2 时间日期 数值直接以字面量的形式表示 number: 12.30 布尔值用true和false表示 isSet: true null用 ~ 表示 parent: ~ 时间采用 ISO8601 格式 iso8601: 2001-12-14t21:59:43.10-05:00 日期采用复合 iso8601 格式的年、月、日表示 date: 1976-07-31 YAML 允许使用两个感叹号,强制转换数据类型 e: !!str 123 f: !!str true
5、引用会用到 &锚点符合和 星号符号,&用来建立锚点,<< 表示合并到当前数据, 用来引用锚点。
fengsheng: &fengsheng
name: 锋声
age: 20
dept:
id: D15D8E4F6D68A4E88E
<<: *fengsheng
上面最终相当于如下:
fengsheng:
name: 锋声
age: 20
dept:
id: D15D8E4F6D68A4E88E
name: 锋声
age: 20
6、文件内引用,引用已经定义好的变量
base.host: https://chenpi.com
add.person.url: ${base.host}/person/add
7、单文件多配置
#公共配置
spring:
profiles:
active: pro # 指定使用哪个文档块
#开发环境配置
spring:
profiles: dev # profiles属性代表配置的名称
server:
port: 8080
#生产环境配置
spring:
profiles: pro
server:
port: 8081