YAML(YAML Ain’t Markup Language)是一种简洁且易读的数据序列化格式,常用于配置文件。Spring Boot 中的 application.yml
文件使用 YAML 来配置应用程序的属性。
YAML 基本语法
1. 键值对
- 基本的键值对表示形式为:
key: value
,键和值之间用冒号:
分隔,键和值之间可以有空格。
server:
port: 8080
上面的示例中,server
是一个键,其值为一个嵌套的键值对,表示 port: 8080
。
2. 嵌套结构
- YAML 使用缩进来表示层级结构。缩进通常使用空格(建议使用两个空格)。
myapp:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
在这个例子中,datasource
是 myapp
的子项,url
、username
、password
是 datasource
的子项。
3. 列表(数组)
- YAML 中的列表使用连字符
-
表示,每个元素占一行。
servers:
- dev.example.com
- prod.example.com
这里,servers
是一个列表,包含两个元素:dev.example.com
和 prod.example.com
。
4. 多行字符串
- 使用
|
来表示保持换行的多行字符串,使用>
来表示折叠换行的多行字符串。
description: |
This is a long string
that spans multiple lines.
这个例子中,description
的值是一个多行字符串,保留换行符。
folded: >
This is a long string
that will be folded into a single line.
这个例子中,folded
的值是一个长字符串,在解析时会折叠为一行。
5. 注释
- 使用
#
表示注释,注释可以放在单独一行或者键值对的后面。
# 这是一个注释
server:
port: 8080 # 这是另一个注释
6. 空值
- 如果键没有值,可以使用空字符串,也可以使用
null
或者省略冒号后面的内容。
key1:
key2: null
key3: ""
7. 布尔值
- 布尔值使用
true
和false
表示,大小写不敏感。
feature:
enabled: true
experimental: False
8. 数字
- 数字可以是整数或浮点数,直接写即可,不需要加引号。
version: 1.0
connections: 100
示例:完整的 YAML 配置文件
server:
port: 8080
address: 192.168.1.100
myapp:
name: My Application
version: 1.0
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
logging:
level:
com.myapp: DEBUG
file: /var/log/myapp.log
spring:
profiles:
active: dev
features:
- name: Feature1
enabled: true
- name: Feature2
enabled: false
总结
YAML 的语法简洁且易读,适合用作配置文件。通过正确的缩进和简单的标记法,YAML 能够轻松地表示复杂的数据结构。Spring Boot 中的 application.yml
文件广泛使用 YAML 来配置应用程序的各个方面。