我在开发代码生成工具时,大量使用了application.yml进行配置,这次看课程的时候,又看到了相关的知识点,发现有一些细节我自己之前也没有意识到,所以这儿整理一下。
基础知识
- 单引号和双引号的区别:单引号不会转义,双引号会转义。
- list的内内联写法:
math: [131,140,148]
- map的内联写法:
chinese: {first: 128,second: 136}
对Map的一些处理
我之前实验的过程中,进行Map相关的操作时,出现了一些奇奇怪怪的问题,但是我在看课程的时候,发现并没有这些问题,所以我这儿重新进行一下实验,定义如下Property
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
@Data
@Component
@ConfigurationProperties(prefix = "person")
public class PersonProperties {
private Map<String, Pet> pets;
private Map<String, Object> petsObj;
private Map<String, List<Pet>> petsList;
}
@Data
class Pet {
private Integer id;
private Integer age;
}
|
准备如下application.yml文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
person:
pets:
tom:
id: 1
age: 3
jack:
id: 2
age: 3
pets-obj:
tom:
id: 1
age: 3
jack:
id: 2
age: 3
pets-list:
zhangsan:
- id: 1
age: 3
- id: 2
age: 3
|
总结一下我之前犯的错误,我当时的需求是想用Map<String, Pet>
去接受一个配置项,即本实例中的pets字段,但是我错误的写了如下的配置:
1
2
3
4
5
6
7
8
|
person:
pets:
- id: 1
age: 3
- id: 2
age: 3
|
后续:
针对Map,有个让人头疼的问题,application.yml自动提示在对Map类型效果不是很好。