Spring如何为静态变量注入值
Spring无法直接给静态变量注入值,因为静态变量不属于对象,只属于类,也就是说在类被加载字节码的时候变量已经初始化了,也就是给该变量分配内存了,导致spring忽略静态变量。所以如下这种写法就是错误的,这样是无法注入的,在使用该变量的时候会导致空指针错误:
@Autowired private static IOptionService optionService;
Spring依赖注入是依赖set方法,静态变量不属于对象,只属于类。解决方法就是加上非静态的set方法,如下:
private static IOptionService optionService; @Autowired public void setOptionService(IOptionService optionService) { Commons.optionService = optionService; }
相关推荐
willowwgx 2020-07-27
fushilin 2020-06-28
程序媛一枚 2020-05-03
郭朝 2020-05-01
jkzyx 2020-02-02
luckymaoyy 2020-01-29
Nicolase 2019-12-29
Andrea0 2019-12-23
CSDNSamLiu 2019-11-18
xuexue 2016-03-07
lihn 2019-09-06
shixiaoguo0 2018-08-15
FlyWithDe 2012-03-19
wera00 2014-01-07
天山一客 2019-07-10
MrIronHand 2018-08-15
muchlab 2017-07-04