一霎奢、等價寫法
yaml雖然對格式嚴格要求帖世,但支持多種寫法秃臣。
1.1 數(shù)組
方式一
list_by_dash:
- foo
- bar
方式二
list_by_square_bracets: [foo, bar]
1.2 map
方式一
map_by_indentation:
foo: bar
bar: baz
方式二
map_by_curly_braces: {foo: bar, bar: baz}
1.3 String
方式一
string_no_quotes: Monty Python
方式二
string_double_quotes: "Monty Python"
方式三
string_single_quotes: 'Monty Python'
二梳毙、長字符串
通過大于號后面追加一個長字符串
disclaimer: >
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
In nec urna pellentesque, imperdiet urna vitae, hendrerit
odio. Donec porta aliquet laoreet. Sed viverra tempus fringilla.
三、多行字符串
但如果你想寫一個帶換行的多行字符串般婆,使用 |
mail_signature: |
Martin Thoma
Tel. +49 123 4567
四到腥、變量
email: &emailAddress "info@example.de"
id: *emailAddress
第一行通過& 定義變量,在第二行可以使用 *emailAddress 引用這個變量蔚袍。
五乡范、類型轉(zhuǎn)換
我們可以定義通用的類型
price: !!float 42
id: !!str 42
還可以定義特點編程語言支持的類型
tuple_example: !!python/tuple
- 1337
- 42
set_example: !!set {1337, 42}
date_example: !!timestamp 2020-12-31
六、單文件拆分成多個
子配置文件名為application-filename.yml
spring:
profiles:
include: filename
多個子文件
spring:
profiles:
include:
- filename1
- filename2
七啤咽、多文檔支持
YAML支持使用三個破折號分割文檔---
晋辆,---
上下兩部分會作為兩個獨立的文檔同等對待。
foo: bar
---
fizz: buzz
使用場景:我們在k8s 里面經(jīng)常將deployment和sevice 放到同一個yaml文件中宇整。
八瓶佳、配置List數(shù)組對象并映射
1、User實體類
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
2鳞青、yaml配置
com:
company:
list:
- id: 1
name: tom
age: 20
- id: 12
name: jerry
age: 25
3霸饲、UserList配置類
@Configuration
@ConfigurationProperties(prefix = "com.company")
@Data
public class UserList {
private List<User> list;
}
4、測試
@Test
public void listTest(){
List<User> list = userList.getList();
for(User user:list){
System.out.println(user);
}
System.out.println(userList);
}