当我们有很多配置属性的时候,这时我们可能会把这些属性作为字段来创建一个javabean,并将属性值赋予给他们。比如我们的配置文件如下:
那么我们的需求是将my.*开头的配置项赋值给一个javabean,那么我们的javabean就应该是这样的:
@Component
@ConfigurationProperties(prefix = "my")
public class Information {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
在这里,我们在javabean上添加@ConfigurationProperties注解,并设置prefix值,用于表示取哪个前缀的属性值进行赋值。另外我们需要在springboot入口类添加@EnableConfigurationProperties注解,如下:
@SpringBootApplication
@EnableConfigurationProperties({
Information.class })
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
然后我们写一个测试Controller,如下:
@RestController
@RequestMapping("/information/*")
public class InformationController {
@Autowired
private Information information;
@RequestMapping("getInfo")
public String getMyInformation() {
return "name:" + information.getName() + ", age:" + information.getAge();
}
}
启动springboot,并通过浏览器访问,可以看到已经正确读取配置文件中的值了。