yaml配置注入

application.properties | 语法结构 key=value

application.yml 语法结构 key:空格 value

配置文件是为了修改spring boot自动配置的默认值

例如: 修改Tomcat默认启动端口 

server.port=8081

YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。

yaml语法格式

person:
  name: wangye${random.int}
  age: 23
  happy: false
  birth: 2021/2/23
  map: {k1: v1,k2: v2}
  list:
    - code
    - music
    - swimming
  dog:
    name: 大黄
    age: 90

基本语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释

注入配置文件

yaml文件可以给我们的实体类直接注入匹配值

1、在springboot项目中的resources目录下新建一个文件 application.yml

2、编写一个实体类 Person;

@Component //注册bean到容器中
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
    
    //有参无参构造、get、set方法、toString()方法  
}

3、我们来使用yaml配置的方式进行注入

person:
  name: wangye${random.int}
  age: 23
  happy: false
  birth: 2021/2/23
  map: {k1: v1,k2: v2}
  list:
    - code
    - music
    - swimming
  dog:
    name: 大黄
    age: 90

4、注入到我们的类中!

/*
@ConfigurationProperties作用:
将配置文件中配置的每一个属性的值,映射到这个组件中;
告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应
*/
@Component //注册bean
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

@PropertySource :加载指定的配置文件;

@configurationProperties:默认从全局配置文件中获取值;

 

原文地址:https://www.cnblogs.com/IanIan/p/14437863.html