Spring的@Value注解失效解析

今天在使用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属性,这样问题就完美解决了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容