yaml
一、概述
-
全称:Yet Another Markup Language
-
优势
更简洁的数据结构,也占用更少量的资源,适用于以数据为中心的配置文件
-
基本语法
① key: value kv之间有空格
② 大小写敏感
③ 使用缩进表示层级关系
④ 缩进不允许使用tab,只允许空格
⑤ 缩进的空格数不重要,只要想通过层级的元素左对齐即可
⑥ # 表示注释
⑦ 双引号表示的字符串,且里面转义符可以生效
⑧ 单引号表示的字符串,里面的转义符无法转义,作为普通的字符串;
二、数据类型
-
字面量
单个的、不可再分的值。date、boolean、string、number、null
k: v
-
对象
键值对的集合。如:map、hash、set、object
# 方式一 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
三、 具体实例
-
创建实体类
@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; } @Data public class Pet { private String name; private Double weight; }
-
application.yaml
person: userName: 张三 boss: true birth: 2019/12/9 age: 18 interests: [篮球,足球] animal: - 阿猫 - 阿狗 score: english: 80 math: 90 salarys: - 9999.98 - 9999.99 pet: name: 阿狗 weight: 29 allPets: sick: - {name: 阿狗,weight: 29} - name: 阿猫 weight: 38 - name: 啊虫 weight: 0.28 health: - {name: 阿华, weight: 199.99} - {name: 阿名, weight: 100.99}
四、添加配置处理器
-
作用
在编辑application.yaml文件时,IDEA可以进行自动提示
-
configuration-processor依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>