10 Yaml语法
10.1 语法规定
- 核心写法
整个yaml文件节点可以想象成是一个model对应的。
key: value键值对。Key/value之间要有空格,key不能使用汉字,可以使用纯英文或数字。value值有三大数据格式(Map/Bean对象、Array数组、字面量)。
- 其他写法
大小写敏感。
使用缩进表示层级关系,缩进时不允许使用Tab键,只允许使用空格,缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。
#表示注释,从这个字符一直到行尾,都会被解析器忽略。
字符串无需加引号,如果要加,’’与””表示字符串内容会被转义/不转义。
10.2 value支持的数据格式
- 对象:键值对的集合。map/object、hash、set
行内写法: k: {k1:v1,k2:v2,k3:v3}
#或
k:
k1: v1
k2: v2
k3: v3
- 数组:一组按次序排列的值。array/list、queue
行内写法: k: [v1,v2,v3]
#或者
k:
- v1
- v2
- v3
- 纯量(字面量)
字面量:单个的、不可再分的值。date、boolean、string、number、null
如:age: 21
10.3 实例
如下一个Bean类
@Component
@Data
@ConfigurationProperties(prefix = “fly”)public class Fly {
private String name;
private Integer age;
private Boolean boss;
private Date birth;
private Children coco;
private String[] interests;
private List
private Map
private Map
private Set
private Map
对应的yaml语法
fly:
name: efly
age: 30
boos: false
birth: 2000/01/01 20:12:33
# 对象的常规写法 coco:
age: 1
name: eflycoco
# 数组的行内写法 interests: [游泳,画画,唱歌]
# 数组的行内写法 animal:
- 马
- 骆驼 # score: {数学: 128,语文: 99}
_salarys:
- 18000
- 20000
score1: {english: 128,math: 99}
score2:
geometry: 141
music: [121,123,125]
# 集合的写法_ friends:
em : [{age: 31,name: en},{age: 32,name: en2}]
zz :
- {age: 45, name: tom}
- {age: 35, name: jerry}
10.4 开启自动提示
- Pom.xml文件依赖加入spring-boot-configuration-processor
- 将其排除在build外
如果不加如下代码,package出的war包里面有
spring-boot-configuration-processor-2.3.4.RELEASE.jar
加入