1、yaml的语法规则
- key: value;kv之间有空格
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
- 字符串无需加引号,如果要加,""中\n会被转义成换行
2、yaml的基础使用
(1)字面量:单个的、不可再分的值。date、boolean、string、number、null
# private String name;
# private Date birth;
# private String sex;
person:
birth: 2020/01/01
name: 张三\n #不会被转义成换行
sex: "男\n" #会被转义成换行
(2)对象:键值对的集合。map、hash、set、object
#private Pet pet;
# @Data
# @ToString
# public class Pet {
# private String name;
# private Integer age;
# }
person:
pet:
name: 猫
age: 6
(3)数组:一组按次序排列的值。array、list、queue
# private List<String> interests;
# private String[] animal;
person:
interests: [篮球,足球,乒乓球] # 行内写法
animal:
- 阿猫
- 阿狗
(4)复杂示例
# private Map<String, List<Pet>> allPets;
person:
allPets:
sick:
- { name: tom,age: 8 }
- name: jerry
age: 47
health: [ { name: mario,age: 47 } ]
3、属性绑定提示
增加如下配置,重启项目写yaml时就有属性提示
<!-- 导入启动项目增加yml属性绑定提示 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--打包时剔除该包-->
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>