- 在yml文件添加属性
server:
port: 8081
dqyml:
name: 王原
person:
sex: 男
age: 20
ahs:
- 足球
- 篮球
- 唱歌
map: {k1: v1,k2: v2}
- 新建2个类
@Component
public class Person {
private String sex;
private int age;
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
/*
读取yml文件给属性赋值
*/
@Component
@ConfigurationProperties(prefix = "dqyml")
public class DqYml {
private String name;
private Person person;
private List<String> ahs;
private Map<String,String> map;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public List<String> getAhs() {
return ahs;
}
public void setAhs(List<String> ahs) {
this.ahs = ahs;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public String toString() {
return "DqYml{" +
"name='" + name + '\'' +
", person=" + person +
", ahs=" + ahs +
", map=" + map +
'}';
}
}
- 测试
@Autowired
private DqYml dqYml;
@Test
void contextLoads() {
//测试读取yml文件
System.out.println(dqYml.toString());
}
4. 通过注解@ConfigurationProperties设置prefix的值,该值和yml文件中的属性名一致,就可以找到该属性下和实体类一一对应的属性。