关于spring boot的YAML 配置文件

一、YAML 简介1、什么是 YAML ?

  • YAML(YAML Ain't Markup Language),一种数据序列化格式 。
  • 这种格式的配置文件近些年逐渐进入市场,并开始占据主导地位 。
2、优点
  • 较 xml 类型和 properties 类型相比,更容易阅读,结构也更加的清晰 。
  • 容易与脚本语言交互 。
  • 以数据为核心,重数据轻格式,轻格式并不是说可以不遵守格式,只是格式更加随性一些 。
3、扩展名
  • 扩展名有两种,无论是哪个扩展名,都是 YAML 格式的配置文件,拥有 YAML 的属性 。.yml ,这种扩展名更加主流一些.yaml
4、语法规则
  • 对大小写非常敏感,如:定义 age 和 AGE 都会认为是两个属性 。
  • 属性层级关系使用多行描述,每行结尾使用冒号结束 。
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格 。
  • 空格个数并不重要,只要保证同层级的左侧对齐即可 。
  • 属性值前面添加空格 。
  • 号表示注释 。
5、格式server:port: 80
  • 切记:属性值前面必须有一个空格 。
  • port 是 server 下的一个属性,根据属性层级之间使用多行描述,以及使用缩进表示的规则,port 的书写位置如上所示,但一般情况下,这种格式我们无需过多纠结,我们回车换行后自动提供的格式一般都是正确的 。
6、数组数据name: 准JAVA全栈开发工程师server:port: 80# 数组格式likes:- game- movie- music
  • 数组数据的属性值换行书写,以 “-” 减号开头,注意属性值前空格,如上述 likes 所示 。
二、三种配置文件以配置端口号为例,介绍三种配置文件及其格式 。
1、properties 类型
  • 在未接触到 yaml 之前,我们的配置文件大多数都是以 properties 结尾的文件 。
server.port=80
  • 格式为:属性名=属性值。
  • 这种方式还是非常常见的,我们之前在配置连接数据库相关信息的 jdbc.properties 文件也是使用的改变方式 。
2、yml 类型server:port: 81
  • 将端口号设置为 81。
3、yaml 类型
  • yml 和 yaml 只是扩展名不同而已,其实是一种类型的配置文件 。
server:port: 824、优先级
  • 当项目中同时存在上述三个配置文件时,用采用那个配置文件呢?我们可以通过观察端口号来获得优先级顺序 。
  • 端口号为 80 ,说明有人优先采用了 properties 类型的配置文件,它的优先级最高 。
  • 将 properties 配置文件中的配置内容删除,观察 .yaml 和 .yml 那种文件优先级更高 。
  • 端口号又变为了 81 ,说明 .yml 文件优先级更高一些,虽然 .yaml 只是不同的扩展名罢了 。
  • 总结:优先级由高到低 properties > yml > yaml
三、YAML 代码提示功能
  • 有很多小伙伴反应,说在写什么 YAML 文件时,代码不提示 。
  • 没有代码提示功能,对我们的开发还是造成了一定的影响的,下面就带着大家来解决这个问题 。
  • 首先进入到模块管理 。
  • 将 YAML 类型的两个配置文件添加 。

关于spring boot的YAML 配置文件

文章插图
【关于spring boot的YAML 配置文件】 
  • 选中创建的两个配置文件,完成后点击 “OK” 即可 。

关于spring boot的YAML 配置文件

文章插图
 
  • 此时的配置文件已经变成了三个 。

关于spring boot的YAML 配置文件

文章插图
 
  • 重新回到配置文件看是否实现了代码提示的功能 。

关于spring boot的YAML 配置文件

文章插图
 
  • 已经实现了代码提示功能,虽然是 YAML 文件,但是代码提示的还是按照 properties 类型进行的,并不影响,找到需要的属性直接回车后还是会呈现出 YAML 格式 。
四、读取 YAML 配置文件中的数据1、数据准备sourceName: SpringBoot server:port: 80 user:name: 准Java全栈开发工程师age: 22likes:- music- game- movie


推荐阅读