再玩亿关小游戏
444.26MB · 2025-11-02
# This is a comment
name: John Doe # This is an inline comment
1、 标量:标量是单个的、不可分的值。
2、复合类型
- 字符串(String):可以用引号,也可以不用。例如:
name: "John Doe"
greeting: Hello, world!
- 整数(Integer):例如:
age: 25
- 浮点数(Float):例如:
price: 19.99
- 布尔值(Boolean):true 或 false。例如:
is_active: true
- Null:null 或 ~。例如:
field: null
- 日期和时间:YAML支持多种日期和时间的格式。例如:
date: 2002-12-14
timestamp: 2001-12-15T02:59:43.1Z
- 序列(Sequence):序列是一组按顺序排列的值,类似于数组或列表。它有好几种表示方式
块样式,每个项占一行,每个项前面有一个破折号(-)和一个空格。
fruits:
- Apple
- Banana
- Orange
流样式,所有的项在一行内,用逗号分隔,整个序列用方括号括起来。
fruits: [Apple, Banana, Orange]
混合样式,你也可以在一个序列中混合使用块样式和流样式。
fruits:
- Apple
- Banana
- [Orange, Grape, Pineapple]
复杂序列:序列的项可以是任何类型的数据,包括标量、序列、映射等。
people:
- name: John Doe
age: 30
- name: Jane Doe
age: 28
- 映射(Mapping):映射是一组键值对,类似于哈希表或字典。支持多种样式表示
块样式,每个键值对占一行,键和值之间用冒号(:)分隔。
person:
name: John Doe
age: 30
流样式,所有的键值对在一行内,用逗号分隔,整个映射用花括号括起来。
person: {name: John Doe, age: 30}
混合样式:你也可以在一个映射中混合使用块样式和流样式。
person:
name: John Doe
age: 30
children: {first: Alice, second: Bob}
复杂映射:映射的值可以是任何类型的数据,包括标量、序列、映射等。
person:
name: John Doe
age: 30
children:
- name: Alice
age: 5
- name: Bob
age: 3
:(冒号):用于分隔键和值。例如:key: value。
-(减号):用于表示列表中的项。例如:
- item1
- item2
#(井号):用于表示注释。以 # 开头的内容会被视为注释,不会被解析。# 这是一个注释
key: value
"(双引号)和 '(单引号):用于包含字符串,可以是双引号包含或单引号包含,用于确保字符串中的特殊字符不被解析。例如:double_quoted: "This is a string with special characters like \n and \t."
single_quoted: 'This is another string with special characters like \n and \t.'
&(&符号)和 *(星号):用于创建和引用锚点和别名。锚点用于标记一个值,而别名用于引用该值。例如:- &anchor value1
- *anchor # 此处引用了上面的锚点,值为 value1
!(感叹号):用于标记数据类型。例如 !str 表示字符串类型,!int 表示整数类型。key: !str This is a string
| 和 >:用于多行文本块。| 表示保留换行符,> 表示折叠换行符为一个空格。例如:multiline: |
This is a multiline
string with line breaks.
folded: >
This is a folded
string with line breaks.
下划线 _ 分隔的键:
my_keymyKey(驼峰命名)中划线 - 分隔的键:
my-keymyKey(驼峰命名)省略分隔符 - 或 _:
mykeymykey(保持不变)使用驼峰命名的键:
myKeymyKey(保持不变)使用帕斯卡命名的键:
MyKeyMyKey(保持不变)可以使用${}来应用定义的变量
可以定义变量的地方:
在properties文件或yml文件:定义:my.property=value,引用${my.property}
通过操作系统环境变量配置: ${ENV_VAR_NAME}。例如,如果系统环境中存在 MY_ENV_VARIABLE,则可以这样引用
通过启动时命令行定义变量:如 --my.argument=value,这些参数可以通过 ${command.line.argument} 的形式在配置文件中引用。
通过java系统属性:-Dmy.system.property=myValue, ${system.property.name}
通过嵌入式文件:通过 spring.config.import 属性导入额外的配置源。这些外部配置文件中的变量也可以被${}引用。
RandomValuePropertySource:Spring Boot提供了 RandomValuePropertySource,用于生成随机数或UUID。例如,${random.int} 或 ${random.uuid} 可以生成相应的随机值
自定义配置源:如果项目中引入了自定义的配置源(如自定义的 PropertySource 实现或第三方配置库),这些源中的属性也可能通过 ${} 引用来访问