Spring如何给静态变量注入值

Common.java是一个工具类。

Spring无法直接给静态变量注入值,因为静态变量不属于对象,只属于类,也就是说在类被加载字节码的时候变量已经初始化了,也就是给该变量分配内存了,导致spring忽略静态变量。所以如下这种写法就是错误的,这样是无法注入的,在使用该变量的时候会导致空指针错误:

1
2
@Autowired
private static IOptionService optionService;

Spring 依赖注入是依赖set方法,静态变量不属于对象,只属于类。解决方法就是加上非静态的set方法,如下:

    private static IOptionService optionService;

    @Autowired
    public void setOptionService(IOptionService optionService) {
        Commons.optionService = optionService;
    }

这样就能在工具类中使用optionService了。

本文作者:在谷歌上百度

本文链接:https://www.cnblogs.com/zhangjianbing/p/9635807.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   在谷歌上百度  阅读(7023)  评论(0编辑  收藏  举报
历史上的今天:
2017-09-12 ajax跨域问题Access-Control-Allow-Origin
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开