开发者社区 问答 正文

static的问题,和Spring的加载顺序

public class ToolsUtil implements CcBase{

private static CacheService cacheService = (CacheService)BeanUtil.getBean("cacheService");

}

这段代码有没有问题,cacheService是从Spring的bean中获取,在一个工具类中定义一个静态变量cacheService让工具类中的方法直接使用,而不是每次从Spring获取,这样cacheService 有没有可能是null,就是Spring没有初始化完就初始化了cacheService ,导致为null

现在这种写法在本地是好用的。

展开
收起
a123456678 2016-03-16 10:56:10 3463 分享 版权
2 条回答
写回答
取消 提交回答
  • 静态的肯定先于spring初始化,你可以在spring初始化完成后给静态变量赋值,如果是final的可以用spring构造器去赋值

    2019-07-17 19:03:36
    赞同 展开评论
  • 静态变量在类加载的时候就初始化了,所以除非你能保证在spring初始化完成后才使用这个类,否则肯定是在spring初始化完成前就完成了静态变量的初始化。

    2019-07-17 19:03:36
    赞同 展开评论
问答分类:
问答地址: