「初识」配置文件中Map和List类型如何配置


对象、Map(属性和值)

例如配置类中的字段为:

Map maps;

在yml配置文件中,行内写法:

person.maps: {key1: value1,key2: value2}

需要注意:号后的空格,或者

person:
  maps:
   key: value

在properties配置文件中

person.maps.key=value

数组(List、Set)

在yml配置文件中

person:
 list:
 - 1
 - 2
 - 3

行内写法

person:
 list: [1,2,3]

在properties配置文件中

person.list[0]=1
person.list[1]=2
person.list[2]=3

自定义配置属性

Spring Boot提供自定义配置组件,拿前面举例的属性来写一个规范的配置文件:

@Component // 或者@Configuration
@ConfigurationProperties(prefix = "person")
public class Person {
    private Map maps;
    private List list;
    private String name;
    private int age;

    public Map getMaps() {
        return maps;
    }

    public void setMaps(Map maps) {
        this.maps = maps;
    }

    public List getList() {
        return list;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

@ConfigurationProperties 注解向Spring Boot声明该类中的所有属性和配置文件中相关的配置进行绑定。
prefix = "person":声明配置前戳,将该前戳下的所有属性进行映射。
@Component 或者@Configuration:将该组件加入Spring Boot容器,只有这个组件是容器中的组件,配置才生效。