今天开发的过程中遇到了一个小问题,前前后后经历了不少修改,包括清缓存,重新编译等奇葩操作,最后依然没有解决,在此记录一下,以免日后规避这种小问题。
一、问题描述
我在配置文件中,定义了一个自定义属性
然后直接在要使用的地方通过注解@Value(value="${config.name}")就可以绑定到你想要的属性上面
然而在调用的过程中,取出的常量始终为空值,尝试过许多无厘头的方法,依旧没有奏效
二、问题分析
取值为空有两种可能的情况:
1、该类未使用@Component注解,未将此类标记为Spring容器中的一个Bean,导致配置中的常量使用@Value取值失败;
2、常见类对象时使用new创建而非注入,未将对象放入IOC容器中,导致常量取值为空。
三、问题解决
通过加@Component,并在调用时注入使用,问题迎刃而解。
真是一个悲伤的故事。