一. 什么是YAML 配置文件
相比于 application.properties 配置文件,SpringBoot 更推荐使用 application.yml 的配置文件方式。
YAML 是 “YAML Ain’t Markup Language” 的递归缩写,是方便人类读写的一种格式,比JSON 格式还方便。
YAML 文件,采用 key–value的形式进行编写, value 可以是单个值,也可以是数组集合,也可以是对象。
properties 配置文件和yaml 配置文件,都是对以前的 *.xml 配置文件进行的简化。
一.一 Yaml 文件的优点
拿 MavenHelloWorld项目里面的配置端口号为 8027,配置项目路径为 /Lin 来看。
XML文件,就需要配置成:
<server> <port>8027</port> <servlet> <context-path>/Lin</context-path> </servlet> </server>
Properties 文件,就需要配置成:
server.port=8027 server.servlet.context-path=/Lin
而 Yaml 文件只需要配置成:
server: port: 8027 servlet: context-path: /Lin
当配置文件过多时,如 datasource数据库,redis配置,mongodb配置,shiro配置,mybatis配置等, properties文件也难于理解和阅读了。
而yaml文件,目录结构层次清晰,易于理解和阅读。
下面老蝴蝶开始讲解 Yaml 配置文件。 为了便于观察 Yaml 配置文件的输出结果,
不采用直接写出结果的方式,而采用运行输出结果的方式,
需要创建一个 SpringBoot的 Yaml 项目。
二. 创建 Yaml 项目
根据 第一章的 Maven 创建SpringBoot项目的方式,创建一个名为 Yaml 的项目。里面有pom.xml 依赖,有启动类,有测试类,也有application.properties配置文件,banner.txt 文件,还有更重要的 application.yml 配置文件。
为了便于 Bean 对象的封装,在 pom.xml 里面引入了 lombok的依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
关于配置文件的格式配置,其实是定义在 Yaml工程的父项目 spring-boot-starter-parent-2.2.2.RELEASE.pom.xml 文件里面。
可以定义成 yml,也可以是 yaml, properties.
当同时存在,造成重突时, properties配置文件的优先级最高, yml 配置文件的的优先级最低。
二.一 验证 properties和 yaml配置文件的优先级
二.一.一 application.properties配置文件
server.port=8027 server.servlet.context-path=/Lin
二.二.二 application.yml 配置文件
server: port: 8081 servlet: context-path: /Yue
二.二.三 运行 YamlApplication 启动类,查看控制台输出
发现, application.properties 配置文件生效了。
将 application.properties 文件删除,只保留 application.yml 配置文件。