SpringBoot 读取yml文件配置自定义参数,使用@Value注解注入到bean

时间:2024-03-26 17:57:22

 
 

  1. 碰到的问题
     使用@Component注解定义的bean,在构造器中调用一个成员方法,成员方法使用了@Value注入参数的成员变量,此时成员变量为null
    SpringBoot 读取yml文件配置自定义参数,使用@Value注解注入到bean
  2.  原因
    由于spring实例化顺序为先执行构造方法,再注入成员变量,所以序为先执行构造方法,再注入成员变量,所以ing实例化顺取值为null    
  3. 解决
    ①再写一个常量类,在常量类中引用@value,再在构造方法中引用常量类的变量即可。
    ②使用@Configuration注解+ @Bean配置bean 代替@Component注解bean, 且可配置initMethod执行方法,此时可以使用@Value注入的成员变量,且有依赖关系的Bean可以按顺序在此类中初始化
    SpringBoot 读取yml文件配置自定义参数,使用@Value注解注入到bean