yaml
- 简介
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。 - 基本语法
key: value;kv之间有空格
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#‘表示注释
字符串无需加引号,如果要加,’'与""表示字符串内容 会被 转义/不转义 - 数据类型例子
3.1 字面量:单个的、不可再分的值。date、boolean、string、number、null
k: v
3.2 对象:键值对的集合。map、hash、set、object
行内写法: k: {k1:v1,k2:v2,k3:v3}
#或 k: k1: v1 k2: v2
3.3 数组:一组按次序排列的值。array、list、queue
行内写法: k: [v1,v2,v3]
- 配置文件中的数据绑定自定义类
定义Person类型,添加ConfigurationProperties注解,绑定配置文件中的节点:person
@ConfigurationProperties(prefix = "person")
@ToString
@Data
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String, Object> score;
private Set<Double> salarys;
private Map<String, List<Pet>> allPets;
}
person:
userName: zhangsan
boss: true
birth: 2021/06/05
age: 18
# interests: [篮球,足球]
interests:
- 篮球
- 足球
animal: [cat,dog]
# score:
# english: 80
# math: 90
score: {english: 80,math: 90}
salarys:
- 99999
pet:
name: dog
weight: 80
allPets:
sick:
- {name: dog,weight: 80}
- name: cat
weight: 90
health:
- {name: lion,weight: 70}