Configure map, list, and other data types in application.yml

map

Map<String, String>

config.java

private Map<String, String> mapStr;
复制代码

application.yml

map-str:
    a: aaa
    b: bbb
复制代码

application.properties

map-str.a=aa
map-str.b=bb
复制代码

test

@Autowired
private Config config;

@Test
public void testConfig() {
    // {a=aaa, b=bbb}
    System.out.println(config.getMapStr());
}
复制代码

Map<String, Model>

config.java

public Map<String, MapConfig> mapConfig;

@Data
public static class MapConfig {
    private String key;
    private String val;
}
复制代码

application.yml

map-config:
	map-one:
        key: one-key
        val: one-val
      map-two:
        key: two-key
        val: two-val
复制代码

application.properties

map-config.map-one.key=one-key
map-config.map-one.val=one-val
map-config.map-two.key=two-key
map-config.map-two.val=two-val
复制代码

test

@Autowired
private Config config;

@Test
public void testConfig() {
    // {map-one=Config.MapConfig(key=one-key, val=one-val), map-two=Config.MapConfig(key=two-key, val=two-val)}
    System.out.println(config.getMapStr()); 
}
复制代码

List

List

config.java

private List<String> listStr;
复制代码

application.yml

list-str:
      - a
      - b
复制代码

application.properties

list-str[0]=a
list-str[1]=b
复制代码

test

@Autowired
private Config config;

@Test
public void testConfigGroup() {
    // [a, b]
    System.out.println(config.getListStr());
}
复制代码

List

config.java

private List<User> listObj;

@Data
public static class User {
    String age;
    String name;
}
复制代码

application.yml

list-obj:
      - age: 23
        name: 张三
      - age: 20
        name: 李四
复制代码

application.properties

list-obj[0].age=23
list-obj[0].name=张三
list-obj[1].age=20
list-obj[1].name=李四
复制代码

test

@Autowired
private Config config;

@Test
public void testConfigGroup() {
    // [Config.User(age=23, name=张三), Config.User(age=20, name=李四)]
    System.out.println(config.getListObj());
}
复制代码

Guess you like

Origin juejin.im/post/7025866689770160164