Spring中,变量注入到静态方法中,变量会被改为静态的,虽然不报错,但运行时会报空指针错误。
Spring不能注入static变量的原因,具体详情如下所示:
Spring 依赖注入 是依赖 set方法
set方法是 是普通的对象方法
static变量是类的属性
@Value("#{configProperties['guojianurl']}")
private String guojianurl;
//注入到静态方法中,变为
@Value("#{configProperties['guojianurl']}")
private static String guojianurl;
Spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量
自动生成的getter和setter方法,会带有static的限定符,需要去掉,才可以。
@Component/** 不能少 */
public class lei {
private static String GuoJianurl;
@Value("#{configProperties['guojianurl']}")
public void setGuoJianurl(String guojianurl) {
GuoJianurl = guojianurl;
}
public static String staticmethod()
{
//GuoJianurl
}
}