最近做项目的时候,给static变量赋值, 使用 @value注解 ,结果 获取一直为null ,
比如:
@value("${a.b}")
private static String str;
感觉之前用的挺熟的,没啥问题啊,后面对比了下 , 自己多写了个static(因为测试的时候需要)
后面百度了下原因:
1、spring不允许/不支持把值注入到静态变量中
2、Spring的@Value依赖注入是依赖set方法
3、set方法是普通的对象方法
4、static变量是类的属性,static没有set方法
解决办法:
1、去掉static
2、给static变量 加上set方法
如:
private static String str;
@value("${a.b}")
public void setStr(String b){
str = b;
}