文章

Spring @Value 注入 map 和 list

EL表达式+JSON写法

1
2
3
4
5
@Value("#{'${scio.cloud.list}'.split(',')}")
private List<String> list;

@Value("#{${scio.cloud.maps}}")
private Map<String,String> maps;

yml文件

1
2
scio.cloud.list: topic1,topic2,topic3
scio.cloud.maps: "{key1: 'value1', key2: 'value2'}"

  • *

**

yml常规写法

配置类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@EnableConfigurationProperties
@Configuration
@ConfigurationProperties(prefix = "scio.cloud")
public class ScioCloudConfig {
    private List<String> list;
    private Map<String,String> maps;

    public void setList(List<String> list) {
        this.list = list;
    }

    public void setMaps(Map<String,String> maps) {
        this.maps = maps;
    }
}

yml常规

1
2
3
4
5
6
7
8
9
10
11
scio:
  cloud:
    list:
      - topic1
      - topic2
      - topic3
scio:
  cloud:
    maps:
      key1: 'value1'
      key2: 'value2'
本文由作者按照 CC BY 4.0 进行授权