xxx.properties文件中存放一组配置参数,分别为map类型和list类型,做测试方式,读取配置参数。

1 配置文件xxx.properties

#map 第一种方式
data.person.name=zhangsan
data.person.sex=man
data.person.age=11
data.person.url=xxxxxxxx
#map 第二种方式
data.person[name]=zhangsan
data.person[sex]=man
data.person[age]=11
data.person[url]=xxxxxxxx
#list 第一种方式
data.list[0]=apple0
data.list[1]=apple1
data.list[2]=apple2
#list 第二种方式
data.list=apple0,apple1,apple2

2 注入配置信息

@Configuration
@ConfigurationProperties(prefix = "data")
//如果只有一个主配置类文件,@PropertySource可以不写
@PropertySource("classpath:xxx.properties")
public class PersonConfig {
 
    /**
     * data.person.name
     * 这里map名需要和application.properties中的参数一致
     */
    private Map<String, String> person = new HashMap<>();
    /**
     * data.list
     * 这里list名需要和application.properties中的参数一致
     */
    private List<String> list = new ArrayList<>();
 
 
    /**
     * 编写get,set方法方便使用
     */
    public Map<String, String> getPerson() {
        return person;
    }
 
    public void setPerson(Map<String, String> person) {
        this.person = person;
    }
 
    public List<String> getList() {
        return list;
    }
 
    public void setList(List<String> list) {
        this.list = list;
    }
}

3 使用

    @Autowired
    private PersonConfig personConfig;
 
    @Test
    public void contextLoads() {
 
        Map<String, String> person = personConfig.getPerson();
        List<String> list = personConfig.getList();
        System.out.println("image:"+JSONObject.fromObject(person).toString());
        System.out.println("list:"+ JSONArray.fromObject(list).toString());
    }
 
    //输出结果
    image:{"sex":"man","name":"zhangsan","age":"11","url":"xxxxxxxx"}
    list:["apple0","apple1","apple2"]

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐