yaml文件简介

YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。
YAML 的配置文件后缀为 .yaml,如:application.yaml 。

基本语法

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

先感受一下吧:
image.png
Spring Boot的application.properties文件可以修改Spring Boot的一些默认配置(如上图修改tomcat的端口号),而Spring官方并不推荐使用application.properties来修改,而推荐使用application.yaml,但是文件名必须是application:
image.png

yaml配置注入

对象、Map(键值对)

  1. #对象、Map格式
  2. k:
  3. v1:
  4. v2:

在下一行来写对象的属性和值得关系,注意缩进;比如:

student:
    name: 阿离
    age: 3

行内写法

student: {name: 阿离,age: 3}

数组( List、set )

用 - 值表示数组中的一个元素,比如:

pets:
 - cat
 - dog
 - pig

行内写法


pets: [cat,dog,pig]

我们还可以再application.yaml中给对象注入属性值:

@Component
public class Dog {
    private String name;
    private Integer age;

    //构造器和getXxx、setXxx...

}
@Component
@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;

   //构造器和getXxx、setXxx...

}
person:
  name: "阿离"
  age: 18
  happy: false
  birth: 2001/10/12
  maps: { k1: "最美射手",k2: "发育路线霸" }
  lists:
    - "小可爱"
    - "小姐姐"
    - "爱音乐"
  dog:
    name: "二哈"
    age: 3

运行结果:
image.png
参考文章:
https://mp.weixin.qq.com/s?__biz=Mzg2NTAzMTExNg%3D%3D&chksm=ce6107c3f9168ed5aee476cd9e2e482e4fc271cdba34fa6eccfd5ce10740f229f8eaf487d080&idx=1&mid=2247483744&scene=21&sn=b4ec762e71b2ddf9403c035635299206#wechat_redirect

多环境切换

参考文章:
https://mp.weixin.qq.com/s?__biz=Mzg2NTAzMTExNg%3D%3D&chksm=ce6107c5f9168ed37413fde625dec474cc0a6941fc82ffb9551063afe00e00551abc01883b32&idx=1&mid=2247483750&scene=21&sn=d6758d00371bea97f92e4968d0d96fb9#wechat_redirect