YAML格式文件
在配置文件和数据交换领域,常见的格式还包括 Properties(.properties)、XML(.xml)、JSON(.json)等。它们的设计初衷、易用性和适用场景各有差异:
Properties
主要用于 Java 应用的配置文件,以键值对形式存储,每行一个
key=value
(或key:value
)。优点:简单直观;缺点:无法表示复杂数据结构。
XML(eXtensible Markup Language)
基于标签的标记语言,支持嵌套结构和属性。
优点:结构清晰、可扩展;缺点:冗余标签多,文件体积较大,解析性能相对较低。
JSON(JavaScript Object Notation)
轻量级的数据交换格式,语法源自 JavaScript,支持数字、字符串、布尔值、数组、对象等类型。
优点:简洁易读、解析高效;缺点:不支持注释,无法很好地表达多文档场景。
YAML(YAML Ain’t Markup Language,常见扩展名
.yml
或.yaml
)人类可读的数据序列化格式,以缩进表示层级,支持注释和多文档分隔。
优点:格式直观、注释友好,既能表达简单键值对,也能描述复杂的列表和映射;缺点:对缩进敏感,初学者可能因缩进错误而出错。
选择哪种格式,需结合项目需求、团队习惯、数据复杂度和性能要求。
2. YAML 语法规则
数据类型
标量:字符串、数字、布尔值(
true
/false
)、null
序列(Sequence):列表,用连字符
-
表示映射(Mapping):键值对,用冒号
:
分隔
键值分隔
使用冒号加一个空格:
name Jack
age30注意:不能省略冒号后的空格。
层级表示
通过换行 + 空格缩进表示嵌套关系,禁止使用 Tab,推荐 2 或 4 个空格:
myapp
name mall
count10
同级元素对齐
server
host localhost
port8080键的唯一性
在同一个映射(map)中,键必须唯一,否则后出现的键会覆盖先前的值。
注释
使用
#
添加注释,注释前后用空格分隔更清晰:# 这是一个注释
debug true # 启用调试模式
区分大小写
YAML 对键和值均区分大小写。
3. 实用小技巧
字符串引号
单引号
'…'
:完全按原样保存,不识别转义字符。双引号
"…"
:支持转义(如\n
表示换行)。
保留换行
使用管道符
|
保留多行文本的格式:description
这是第一行
这是第二行(保留换行)
折叠换行
使用大于号
>
将内容折叠成一行空格分隔:summary
这是一段很长的文字,
但在解析时会被折叠为一行。
多文档分隔
使用三短横
---
分隔多个文档,便于在一个文件中维护多组配置:---
env development
debugtrue
---
env production
debugfalse
4. 在 Spring Boot 中的应用
Spring Boot 同时支持 .properties
和 .yml/.yaml
格式的配置文件:
优先级 Spring Boot 默认会先解析
application.properties
,如果同一目录下同时存在application.properties
和application.yml
,则以.properties
为准。如需使用 YAML,请确保只保留application.yml
,或将application.properties
重命名。示例:resources/config/application.yml
myapp
username jim
email jim@123.com
age40
password jim123注意事项
放在
resources/config
下时,需将同目录下的application.properties
改名或删除,才能生效。扩展名可选
.yml
或.yaml
,但请保持团队统一。
- 微信
- 赶快加我聊天吧
- 赶快加我聊天吧