springboot读取XXX.properties⾃定义配置⽂件中的map和list
类型配置参数
孙杨是哪里人1. maven的l⽂件中添加如下依赖
<!-- 配置⽂件要⽤到的jar包 processor -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
朴灿烈亲吻郑秀晶图<optional>true</optional>
</dependency>
2. 配置⽂件 XXX.properties添加如下参数
说明:配置⽂件中的前缀需要全部⼩写,不能出现⼤写。 例如下⾯的 data
#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,\
apple3,apple4,apple5
3.写⼀个DataConfig类,⽤来读取配置信息
#要注意的地⽅是属性名要与 XXX.properties中的参数的名保持⼀致,详见属性注解
//@Configuration 标识这是⼀个配置类
@Component("configData") // 添加到bean容器时指定其名为 configData
@ConfigurationProperties(prefix = "data")  // 读取前缀为 data 的内容
/
/如果只有⼀个主配置类⽂件,@PropertySource可以不写
@PropertySource("classpath:XXX.properties")
// @PropertySource(value = { "classpath:config/XXX.properties" }, encoding = "utf-8") public class DataConfig{
/**
* data.person.name
* 这⾥map名需要和XXX.properties中的参数data.person.name的person⼀致
*/
水煮鱼的做法大全
private Map<String, String> person = new HashMap<>();
/**
* data.list
* 这⾥list名需要和XXX.properties中的参数data.list的list⼀致
*/
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;
}
}
4.测试类测试
@Autowired
@Qualifier("configData")  //  指定注⼊bean的名称,提⾼注⼊准确性
private DataConfig dataConfig;
@Test
public void contextLoads() {
Map<String, String> person = Person();
List<String> list = List();
基督教新年祝福语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","apple3","apple4","apple5"]中国内品牌女装