@ConfigurationProperties读取application.yml

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());
    }
}

运行启动类
在这里插入图片描述

在这里要注意,如果在控制台输入的是乱码,点击这里解决.

猜你喜欢

转载自blog.csdn.net/weixin_43957211/article/details/110440845
今日推荐