Spring Boot(2) 配置文件
学习视频:https://www.bilibili.com/video/BV19K4y1L7MT?p=20
1.properties
语法:同以前的properties用法
2.yml
2.1 简介
- AML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。
- 非常适合用来做以数据为中心的配置文件
2.2 基本语法
- key: value;kv之间有空格
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
- 字符串无需加引号,如果要加,’'与""表示字符串内容 会被 转义/不转义;如\n用单引号不会换行,用双引号会换行
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
2.4 示例
javabean—Person.class
@ConfigurationProperties(prefix = "person")
@Component
@Getter
@Setter
@ToString(includeFieldNames = false, exclude = {"boss", "animal", "score", "salary","allPets"})
@NoArgsConstructor
@AllArgsConstructor
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;
}
javabean—Pet.class
@Component
@ConfigurationProperties(prefix = "pet")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Pet {
private String name;
private Double weight;
}
配置文件—application.yml
person:
username: deserts
boss: false
birth: 2000/01/01 11:11:11
age: 18
pet:
name: tomcat
weigth: 33.3
interes: [跑步, 羽毛球]
animal:
- dog
- cat
- pig
score:
English: [80, 90, 100]
Math:
first: 45
second: 55
thrid: 65
salarys: [8888, 9999, 10000]
allPets:
health:
- {name: tom, weight: 30}
- {name: jerry}
sick:
- {name: trump, weight: 100}
3.配置提示
自定义的类和配置文件绑定一般没有提示,添加依赖
<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.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>