application.yml

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>

@Value和@ConfigurationProperties为属性注入值对比

posted @ 2020-09-21 18:36  codeFiler  阅读(331)  评论(0)    收藏  举报