SpringBoot的yaml语法
配置文件
1、文件类型
1.1、properties
同以前的properties用法
1.2、yaml
1.2.1、简介
YAML 是 "YAML Ain't Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。
非常适合用来做以数据为中心的配置文件
1.2.2、基本语法
- key: value;kv之间有空格
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- '#'表示注释
- 字符串无需加引号,如果要加,''与""表示字符串内容 会被 转义/不转义
1.2.3、数据类型
- 字面量:单个的、不可再分的值。date、boolean、string、number、null
k: v
- 对象:键值对的集合。map、hash、set、object
行内写法: k: {k1:v1,k2:v2,k3:v3}
#或
k:
k1: v1
k2: v2
k3: v3
- 数组:一组按次序排列的值。array、list、queue
行内写法: k: [v1,v2,v3]
#或者
k:
- v1
- v2
- v3
1.2.4、示例
/**
* @author WGR
* @create 2021/3/9 -- 20:08
*/
@Data
@Component
@ConfigurationProperties(prefix="person")
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String, Object> score;
private Set<Double> salarys;
private Map<String, List<Pet>> allPets;
private Map<String, List<Pet>> allPets2;
private List<Pet> pets;
private List<Map<String, Object>> scores;
}
/**
* @author WGR
* @create 2021/3/9 -- 20:08
*/
@Data
public class Pet {
private String name;
private Double weight;
}
配置文件:
person:
userName: dalianpai
boss: false
birth: 2021/03/09 20:12:33
age: 18
pet:
name: huang
weight: 11.11
interests:
- qwe
- asd
animal: [q,w,e,r]
# score: { english: 80, math: 70}
score:
english:
first: 30
second: 40
third: 50
math: [131,140,148]
salarys: [3999,4999.98,5999.99]
allPets: {zhangsan: [{name: dahuang, weight: 12.11},{name: xiaogou, weight: 9.11}], wangsi: [{name: wqwq, weight: 12.11},{name: ewqw, weight: 9.11}]}
allPets2:
ws: [{name: mario,weight: 47}]
zs:
- name: tom
- name: james
weight: 32
- {name: yamy,weight: 12}
pets:
- name: qqq
weight: 123
- name: qwq
weight: 323
scores:
- k1: v1
- k2: v2
- {k3: v3,k4: v3}
测试类:
@Autowired
Person person;
@RequestMapping("/person")
public Person person(){
String userName = person.getUserName();
System.out.println(userName);
return person;
}
{
"userName": "dalianpai",
"boss": false,
"birth": "2021-03-09T12:12:33.000+00:00",
"age": 18,
"pet": {
"name": "huang",
"weight": 11.11
},
"interests": [
"qwe",
"asd"
],
"animal": [
"q",
"w",
"e",
"r"
],
"score": {
"english": {
"first": 30,
"second": 40,
"third": 50
},
"math": {
"0": 131,
"1": 140,
"2": 148
}
},
"salarys": [
3999,
4999.98,
5999.99
],
"allPets": {
"zhangsan": [
{
"name": "dahuang",
"weight": 12.11
},
{
"name": "xiaogou",
"weight": 9.11
}
],
"wangsi": [
{
"name": "wqwq",
"weight": 12.11
},
{
"name": "ewqw",
"weight": 9.11
}
]
},
"allPets2": {
"ws": [
{
"name": "mario",
"weight": 47
}
],
"zs": [
{
"name": "tom",
"weight": null
},
{
"name": "james",
"weight": 32
},
{
"name": "yamy",
"weight": 12
}
]
},
"pets": [
{
"name": "qqq",
"weight": 123
},
{
"name": "qwq",
"weight": 323
}
],
"scores": [
{
"k1": "v1"
},
{
"k2": "v2"
},
{
"k3": "v3",
"k4": "v3"
}
]
}