开发者社区> 问答> 正文

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 3070 0
2 条回答
写回答
取消 提交回答
  • 静态的肯定先于spring初始化,你可以在spring初始化完成后给静态变量赋值,如果是final的可以用spring构造器去赋值

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

    2019-07-17 19:03:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多