1.通过@ConfigurationProperties
读取application.yml并与 bean 绑定
首先,我们在application.yml文件中,大致的内容是一个公司的地址属性,还有组信息
company:
location: 广州市天河区建工路4号
# 用LIST获取数据列表
groups:
- name: 创新五部
description: 不得了噢
- name: 开发一部
description: 哦豁
- name: 经理部
description: you are those people who drive me crazy by calling me up and persuading me to buy something i absoluly no need for
下面是配置类CompanyPropertis,这里使用了lombok插件,@Setter@Getter@ToString简化代码
@ConfigurationProperties(prefix = "company")
@Component
@Setter
@Getter
@ToString
public class CompanyPropertis {
private String location;
private List<Groups> groups;
//不一定要用静态内部类,这里使用是为了方便看(可以单独创建一个类)
@ToString
@Setter
@Getter
static class Groups{
private String name;
private String description;
}
}
接着就是启动类了,这里实现InitializingBean接口是为了afterPropertiesSet方法,这是Bean生命周期的其中一个接口。从名字就知道,这是一个初始化方法,在Bean构造函数后执行。
@SpringBootApplication
public class BuildOneTimeApplication implements InitializingBean {
private final CompanyPropertis company;
public BuildOneTimeApplication(CompanyPropertis company) {
this.company = company;
System.out.println("BuildOneTimeApplication构造函数被调用");
}
public static void main(String[] args) {
SpringApplication.run(BuildOneTimeApplication.class, args);
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println(company.getLocation());
System.out.println(company.getGroups());
}
}
运行启动类
在这里要注意,如果在控制台输入的是乱码,点击这里解决.