@Autowired注⼊static静态变量
开发过程中可以需要注⼊静态变量,但是如果使⽤常规⽅式,直接在静态变量上⾯使⽤@Autowired注解注⼊是不成功的,使⽤时报空指针异常,如下:
常⽤的两种解决⽅式:
⼀、使⽤构造⽅法注⼊(注:spring中这种⽅式可能出现循环依赖错误)
@Component
public class TestBean {
public TestBean(){}static修饰的变量
// 静态变量
private static DictService dictService;
// 构造⽅法注⼊静态变量
@Autowired
public TestBean(DictService dictService){
TestBean.dictService = dictService;
}
public static void getDict(String type) throws Exception {
// 注⼊成功后,在静态⽅法⾥⾯使⽤静态变量
}
}
⼆、set⽅法注⼊(推荐使⽤)
@Component
public class TestBean {
// 静态变量
private static DictService dictService;
// 构造⽅法注⼊静态变量
@Autowired
public void setDictService(DictService dictService){
TestBean.dictService = dictService;
}
public static void getDict(String type) throws Exception {
// 注⼊成功后,在静态⽅法⾥⾯使⽤静态变量
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论