【spring】 使用@Value注解并设置了默认值,但测试时仍然报错

代码中的定义是这样的:
@Value("${deviceNum:1}")
private int accessTokenNum;

配置文件中为:
deviceNum=2

此时测试一切正常。

但如果注掉的话
#deviceNum=2

本来预计会用到默认值1,但实际结果是:

java.lang.IllegalArgumentException:
Could not resolve placeholder 'deviceNum' in string value "${deviceNum}"

配置的默认值没有起作用。

经过我的测试,没有复现你遇到的问题,建议检查一下spring版本;http://www.mkyong.com/spring3/spring-value-default-value/

应该是properties 配置文件没有被spring正确扫描和解析,建议检查配置properties文件的引入配置代码。

检查下声明@Value的类是否在spring定义扫描包下