yml配合@ConfigurationProperties注入
...小于 1 分钟
1. 常规例子
先准备好一个配置类,如下:
- 使用
@ConfigurationProperties
该类必须是个bean对象。 - 该类必须有setting方法,否则无法注入值。
@Setter @Getter @Component @ConfigurationProperties(prefix = "test") public class TestConfig { // 字符串 private String userName; // Integer private Integer sum; // boolean private boolean flag; private int size; // 对象 private Person person; // List<对象> private List<Person> personList; // Map<String, 对象> private Map<String, Person> map; @Setter @Getter static class Person { private String name; private int age; } }
- 使用
yml文件写法如下
test: user-name: test1 sum: 20 flag: false size: 100 person: name: person1 age: 18 person-list: - name: person1 age: 1 - name: person2 age: 2 - name: person3 age: 3 map: key1: name: map1 age: 1 key2: name: map2 age: 2
结果
2. 非常规例子(不建议)
ConfigurationProperties
不配prefix,默认是从yml文件根结构开始,如下例子:@Setter @Getter @Component @ConfigurationProperties() public class TestConfig { // List<对象> private List<Person> personList; @Setter @Getter static class Person { private String name; private int age; } }
yml编写
person-list: - name: person1 age: 1 - name: person2 age: 2 - name: person3 age: 3
结果