4.配置文件
1.文件类型
1.1properties
同以前的properties用法
1.2yaml
1.2.1 简介
YAML 是“YAML Ain't Markup Language” (YAML不是一种标记语言)的递归缩写。在开发这种语言时,
YAML的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。
非常适合用来做一数据为中心的配置文件
1.2.2基本语法
1)key:value;kv之间有空格
2)大小写敏感
3)使用锁紧表示层级关系
4)锁紧不允许使用tab,只允许空格
5)锁紧的空格数不重要,只要相同层级的元素左对齐即可
6)‘#’表示注释
7)‘&’表示字符串内容 会被转义/不转义
1.2.3 数据类型
字面量:单个的、不可再分的值。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
1.2.4、示例
@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;
}
person: userName: 张三 boss: true birth: 2019/12/9 interest: [篮球,足球] animal: [阿猫,阿狗] # score: # engilish: 80 # math: 90 score: {english: 80,math: 90} salarys: - 9999.98 - 9999.99 pet: name: 阿狗 weight: 10 allPets: sick: - {name: 阿狗,weight: 10} - name: 阿猫 weight: 20 - name: 阿虫 health: - {name: 阿花,weight: 199.99} - {name: 阿明,weight: 100}
userName: '张三 \n'
#单引号会将 \n作为字符串输出 双引号会将\n作为作为换行输出
#双引号不会转义,丹单引号会转义
1.2.5 yaml文件提示配置
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>打包的时候不加入上面那个插件包,因为跟业务无关 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> <exclude> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build>