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