一Springboot 读取配置文件中定义的数组集合,读取配置文件转为集合
一、定义配置文件
首先我们将数组配置信息,写入到配置文件中。这里使用核心配置文件或者自定义配置文件都可以,将自定义配置文件整合到核心文件中就行。配置文件如下:
register:
numberinfo :
- registerNumber: 1
startTime: "08:00"
endTime: "08:20"
- registerNumber: 2
startTime: "08:21"
endTime: "08:40"
- registerNumber: 3
startTime: "08:41"
endTime: "09:00"
注意这里
:‘-’ 的作用,不知道的小伙伴可以看本文第二段,配置文件特殊符号解析。
二、创建对象
@Data
public class Numberinfo {
private Integer registerNumber;
private String startTime;
private String endTime;
}
三、创建包装对象
上面我们将配置信息写入到配置文件中了,并且也定义单条数据抽象的对象;现在需要创建一个对象,用于将配置信息转化为抽象对象的列表。
@Component
@ConfigurationProperties(prefix="register")
public class NumberConfig {
private List<Numberinfo> numberinfo;
public List<Numberinfo> getNumberinfo() {
return numberinfo;
}
public void setNumberinfo(List<Numberinfo> numberinfo) {
this.numberinfo = numberinfo;
}
}
四、注意
1.ConfigurationProperties 注解用于设置Springboot从配置文件中取值过程中的约束。
2.定义的List 对象名应该和配置文件中的相同。numberinfo
3.Numberinfo 对象的属性名应该和配置文件中的key相同。
三、使用方法
在需要用到的类中通过注入该类就可以直接使用了
@Autowired
private NumberConfig numberConfig ;
二配置文件特殊符号解析
- ’ # 表示注释
- 对象
# conf.yml
animal: pets
hash: { name: Steve, foo: bar }
转换为 json 为:
{
{ "animal": "pets" },
{ "hash": { "name": "Steve", "foo": "bar" } }
}
- 数组
# conf.yml
Animal:
- Cat
- Dog
- Goldfish
转换为 json 为:
{ "Animal": [ "Cat", "Dog", "Goldfish" ] }
- null
# conf.yml
parent: ~
.yml 中 ~ 表示 null,转换为 json 为:{ "parent": null }