@ConfigurationProperties注解有个prefix属性,通过指定的前缀,绑定配置文件的相关配置。该注解可以放在类上,也可以放在方法上。
从官方的注释中了解,当作用于方法上时,如果绑定配置,需要有@Bean注解且对应的类需要@Configuration注解
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@documented
@Indexed
public @interface ConfigurationProperties {}
一、放在类上使用
配置文件:
personinfo: name: jack02 age: 12
Java POJO类
@Component
@ConfigurationProperties(prefix = "personinfo")
public class PersonInfo {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
测试:
@Autowired
private PersonInfo personInfo;
@Test
public void getPersonInfo(){
System.out.println(personInfo.getName()+"-"+personInfo.getAge());
}
二、放在方法上
配置文件
student: name: jack03 age: 24 sex: M
Java POJO类
public class Student {
private String name;
private int age;
private String sex;
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;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
Java Config 类
@Configuration
public class StudentConfig {
@Bean
@ConfigurationProperties(prefix = "student")
public Student getStudent(){
return new Student();
}
}
测试
@Autowired
private Student student;
@Test
public void getStudent(){
System.out.println(student.getName()+"-"+student.getAge()+"-"+student.getSex());
}



