美文网首页JavaIT干货
Spring @Value 注入List和Map

Spring @Value 注入List和Map

作者: LoWang | 来源:发表于2019-02-15 10:28 被阅读622次

    Spring @Value 注入List和Map

    EL表达式+JSON写法

    • .java
    @Value("#{'${scio.cloud.list}'.split(',')}")
    private List<String> list;
     
    @Value("#{${scio.cloud.maps}}")  
    private Map<String,String> maps;
    
    • .yml
    scio.cloud.list: topic1,topic2,topic3
    scio.cloud.maps: "{key1: 'value1', key2: 'value2'}"
    

    yml常规写法

    • .yml
    scio:
      cloud
        list: 
          - topic1
          - topic2
          - topic3
    scio:
      cloud:
        maps: 
          key1: 'value1'
          key2: 'value2'
    

    或者

    scio:
      cloud
        list: 
          - topic1
          - topic2
          - topic3
    scio.cloud.maps[key1]: 'value1'
    scio.cloud.maps[key2]: 'value2'
    
    • .java
    @EnableConfigurationProperties
    @Configuration
    @ConfigurationProperties(prefix = "scio.cloud")
    publci 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;
        }
        
        
    }
    

    重点重点

    使用了@ConfigurationProperties需要对属性写setter方法。

    相关文章

      网友评论

        本文标题:Spring @Value 注入List和Map

        本文链接:https://www.haomeiwen.com/subject/pncpeqtx.html