最近在项目中遇到一个问题:
在给static修饰的变量做@Value注入时,发现变量值为null,在网上查了些资料,发现@Value只能给普通变量做值注入,那么如何给静态变量做值注入呢?
解决办法:
1、先在类名上加@Component注解
2、然后再使用setXxxxxx(abc)方法,并在setXxxxxx(abc)上面加上@Value注解,如下:
@Value("${domain}")
public void setDomain(String domain) {
DomainUtil.domain = domain;
}
ps:1、如果是IDE生成的set方法,会在方法上带上static修饰符,这样是不行的,需要去掉static修饰符
2、如果set方法中的参数跟static变量同名,那么不能用this来指向static变量,而需要用类名来限定