今天在使用Spring的@Value注解注入配置文件属性时,注入值为null;
先分析有可能失败的原因
1. 类上没有spring的注解,不是依赖注入的bean
2. @Value("${XXXX}")其中的XXXX和配置文件的属性不一致
3. Spring加载顺序问题
前两种原因只要足够仔细,都可以发现问题的原因。
第三种不太好定位,注入失效的原因是Spring先加载的bean,如你要注入的类上面有Spring的类似于@Controller、@Service、@Component等注解,Spring先加载初始化你的bean。你的@Value属性还没有被加载进去,导致属性值为null;
这种问题处理思路就是,控制bean和属性的加载顺序,保证@Value先加载。
可以再bean的带参构造上面传入你的@Value属性,这样问题就完美解决了。