在springboot中,除了支持properties配置文件外还支持yaml配置文件。YAML(YAML Ain't Markup Language)是一种用于配置文件的格式,它使用简洁的、易读的文本来表示数据结构。YAML文件通常以.yml
或.yaml
作为文件扩展名。YAML广泛用于配置文件、数据序列化、文档等领域,也常用于构建和配置应用程序。
YAML的优点:
-
易读性:YAML的语法设计使得文件结构更加清晰,易于人类阅读和编写。
-
简洁性:相比于其他格式(如XML和JSON),YAML的语法更为简洁,减少了冗余的标记。
-
数据层次性:YAML支持嵌套结构,可以表示多层次的数据关系,包括数组、对象、键值对等。
-
注释:YAML允许添加注释,方便开发人员对配置进行解释和说明。
YAML的语法:
- 大小写敏感
- 数值前边必须有空格,作为分隔符
- 使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格(idea中会自动将Tab转换为空格)缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- #表示注释,从这个字符一直到行尾,都会被解析器忽略
示例:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/tlias
username: root
password: 1234
#配置单个文件最大上传大小
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
mybatis:
configuration:
#配置mybatis的日志, 指定输出到控制台
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#开启mybatis的驼峰命名自动映射开关 a_column ------> aCloumn
map-underscore-to-camel-case: true
YAML的数据格式:
1、对象(Map,字典):
- 使用缩进表示层次结构。
- 使用
:
将键和值分隔开,值可以是标量、对象、数组等。 - 对象的键和值之间要保持缩进一致。
person:
name: Young
age: 18
address:
city: New York
2、数组(List,列表):
- 使用
-
符号表示数组元素。 - 数组元素可以是标量、对象、数组等。
- 数组元素之间要保持缩进一致。
fruits:
- apple
- orange
- banana
3、多行字符串:
- 使用
|
符号表示多行字符串块。 - 保留原始缩进,可以显示换行和空格。
description: |
This is a multiline
string that preserves
line breaks and indentation.
输出:
This is a multiline
string that preserves
line breaks and indentation.
4、折叠块:
- 使用
>
符号表示折叠字符串块。 - 去掉首行的换行符,其他保留原始缩进。
note: >
This is a folded
string that preserves line
breaks but removes the first newline.
输出:
This is a folded string that preserves line breaks but removes the first newline.
5、引号:
- 字符串可以使用单引号或双引号括起来。
- 使用引号可以保留空格和特殊字符。
6、特殊字符:
- 使用转义字符来表示特殊字符。
- 例如,
\n
表示换行,\t
表示制表符。