Ⅰ Properties
Properties 配置文件还是我们惯常的用法,通过等号连接一对键值对。
Spring Boot 会有一个全局的 properties 配置文件 application.properties
来配置 Spring MVC 或者服务器参数之类的配置,这个配置文件的名称是不变的。
Ⅱ YAML
A. 介绍
除了 properties 配置文件外,Spring Boot 还兼容另一种配置文件就是 YAML。
YAML 是 YAML Ain’t Markup Language(YAML 不是一种标记语言) 的缩写。
真是一个很绝的名字,名字本身就是个递归,江湖人称薛定谔的YAML。
虽然它名字叫不是一个标记语言,但是它其实还是一个标记语言,所以在开发中 YAML 的意思其实是 Yet Another Markup Langauge(仍是一门标记语言)。YAML 非常适合用来做以数据为中心的配置文件。比起 xml,YAML 的语法更加简单并且更节省空间。
B. 基本语法
YAML 的语法可以总结为下面几条:
key: value
,注意key
冒号后还有一个空格;- 大小写敏感;
- 使用缩进表示层级关系;
- 缩进不允许使用tab,只允许空格;
- 缩进的空格数不重要,只要相同层级的元素左对齐即可;
#
表示注释;''
和""
表示字符串内容会被 转义/不转义。
C. 数据类型
第一种,字面量。 也就是单个的、不可再分的值。例如:date
, boolean
, string
, number
, null
。
k: v
第二种,对象。 需要用键值对的集合来描述。例如:map
, hash
, set
, object
。有两种写法。
行内写法:
k: {k1:v1,k2:v2,k3:v3}
层次写法:
k:
k1: v1
k2: v2
k3: v3
第三种,数组。 一组按照次序排列的值。array
, list
, queue
。
行内写法:
k: [v1,v2,v3]
层次写法:
k:
- v1
- v2
- v3
D. 一个 YAML 的例子
我现在先写两个 Bean。
首先是一个 Pet
类,只有两个属性,名字和体重。
方便起见,我直接使用了 lombox 的注解。@Data
就相当于是写了 Getter
和 Setter
方法。
然后我们再写一个 Person
类,这个类尽可能定义更多的类型。
如果是用 properties 文件配置的话,我们可能需要这么写👇
这样其实也是挺麻烦的。我们再看看用 YAML 怎么做。
YAML 配置文件的名称还是必须是 application
,后缀可以写 yml
,也可以写