application.yml
YAML是一种以数据为中心的配置文件,通常以.yml为后缀。
1.语法
-
大小写敏感
-
使用缩进表示层级关系
-
server: port: 8080 path: /autumn
-
缩进时不允许使用Tab键,只能使用空格
-
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
-
key:(空格)value -> 键和值中间用冒号空格
YAML支持的三种数据结构
- 对象:键值对的集合
- 数组:一组按次序排列的值
- 字面量:单个的、不可再分的值
2.值的写法
字面量:普通的值(数字、字符串、布尔)
字符串默认不用加引号,
如果加上 “” 双引号,双引号内的特殊字符将作为本身的意思展示
如果加上 ‘’ 单引号,单引号内的特殊字符将会被转义
对象。MAP(属性和值)(键值对):
k: V:在下一行来写对象的属性和值的关系;注意缩进
对象还是k:v的方式
`person:
perName: zhangsan
age: 18`
行内写法:
person: {perName: zhangsan,age: 18}
数组(List、Set):
用- 值表示数组中的一个元素
`person:
- zhangsan
- lisi
- wangwu`
行内写法
person: [zhangsan,lisi,wangwu]
3.配置文件的注入
配置文件
`person:
perName: zhangsan
age: 18
boss: null
birth: 2018/9/9
dog:
name: 小狗
agg: 2
`
JavaBean:
`import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String perName;
private Integer age;
private String boss;
private Date birth;
private Dog dog;
public String getPerName() {
return perName;
}
public void setPerName(String perName) {
this.perName = perName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getBoss() {
return boss;
}
public void setBoss(String boss) {
this.boss = boss;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
@Override
public String toString() {
return "person{" +
"perName='" + perName + '\'' +
", age=" + age +
", boss='" + boss + '\'' +
", birth=" + birth +
", dog=" + dog +
'}';
}
}
`
导入配置文件处理器,编写的配置就会有提示了
`<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>`