出现这个问题因为启动的时候没有将SpringUtil注册到spring的容器
解决方案:

1.启动类中指定basePackages扫描SpringUtil所在的包

@SpringBootApplication(scanBasePackages = {"com.hy.image.mp.file","cn.hutool.extra.spring"})

scanBasePackages指定扫描hutool包后,spring就只扫描指定包,不会扫描其他的包(不指定会有一个默认扫描策略),所以还需要扫描当前服务的包,否则@RestController@Service@FeignClient@Component等等代码中使用的这些注解没啥用了,虽然启动过程中正常,使用过程中就会有问题
感觉不够美观,实际上我只需要扫描hutool,但是还要扫描项目包,所以有了第二种方案


2.启动类构造注册到spring容器

@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients
public class CloudStorageServiceApplication {// 由于hutool的SpringUtil没有注册到Spring容器里,后续代码中使用SpringUtil.getBean()出现空指针异常, 启动前通过构造器注册到容器public CloudStorageServiceApplication(SpringUtil springUtil) {}public static void main(String[] args) {SpringApplication.run(CloudStorageServiceApplication.class, args);}
}

第二种方案就是在启动列的构造器方法中加入SpringUtil,spring启动的时候会优先去把SpringUtil扫描注册到容器,也可以解决问题
感觉还是不美观,启动类构造器都搞上了,所以有了第三种方案


3.SpringApplication.run()传入SpringUtil

@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients
public class CloudStorageServiceApplication {public static void main(String[] args) {SpringApplication.run(new Class[]{CloudStorageServiceApplication.class, SpringUtil.class}, args);}
}
SpringApplication.run()正常是只需要传入当前启动类的class,具体做的事情(个人理解:启动时去做各种主准备工作,比如扫描到@SpringBootApplication注解那么就应该会创建tomcat容器等等 ps:我也不是很清楚自行百度吧)总之也是会去扫描注解的也会做一些将对象注册到容器的事情,发现run()方法可以传入多个class类,再去百度了下确实可以传入多个class,那我是不是可以传入SpringUtil.class,经过测试没有问题,于是就完美的解决了这个问题
完美解决问题

hutool SpringUtil.getBean() NullPointerException相关推荐

  1. openOffice word转pdf,pdf转图片优化版

    之前写了一个版本的,不过代码繁琐而且不好用,效率有些问题.尤其pdf转图片速度太慢.下面是优化版本的代码. spriing_boot 版本信息:2.0.1.RELEASE 1.配置信息: packag ...

  2. 视频显示当前帧附加信息(通过vtt字幕方式)

    vtt 字幕文件 WEBVTT1604651411941 00:00:01.000 --> 00:00:02.000 {"position":"pos:0" ...

  3. Quartz入门教程

    本文参考文章编写 Quartz 官网 Quartz 是 OpenSymphony 开源组织在 Job Scheduling 领域又一个开源项目,是完全由 Java 开发的一个开源任务日程管理系统,&q ...

  4. 基于quartz实现定时任务管理系统

    基于quartz实现定时任务管理系统 背景 说起定时任务框架,首先想到的是Quartz.这是定时任务的老牌框架了,它的优缺点都很明显.借助PowerJob 的readme文档的内容简单带过一下这部分. ...

  5. EasyExcel生成带下拉列表或二级级联列表的Excel模版+自定义校验导入数据(附仓库)

    EasyExcel生成带下拉列表或二级级联列表的Excel模版+自定义校验导入数据(附仓库) 目录 EasyExcel生成带下拉列表或二级级联列表的Excel模版+自定义校验导入数据(附仓库) 仓库 ...

  6. tio对接天眼tcp协议记录

    依赖 <dependency><groupId>org.t-io</groupId><artifactId>tio-core</artifactI ...

  7. (十六)admin-boot项目之文件存储上传与下载minio

    (十六)文件存储上传与下载 项目地址:https://gitee.com/springzb/admin-boot 如果觉得不错,给个 star 简介: 这是一个基础的企业级基础后端脚手架项目,主要由s ...

  8. unity3d游戏网络服务器和客户端

    想做网络游戏的小伙伴肯定找过 mirro ,Photon的工具 ,但是不是很好用,想自定义强一点,连外网服务器 资料很少或者没有. 我直接用java的netty做的udp服务器就实现了个简单的 实现了 ...

  9. java流水号英文和日期加上流水号拼接

    效果:英文和日期加上流水号拼接 一.步骤: 1.新建常量类**Constants 2.设置常量为编号开头 /*** 8**常量类*/ public class DjkConstants {/*** 编 ...

  10. 阿里云人脸识别新版SDK对接(java)

    我自认为不想做curd程序员,但是免不了的会对数据基本原子操作进行处理,项目开发过程中的增删改查少不了的,但是又不甘心于curd下去,所以想要在掌握现有知识的基础上,甚至逼迫自己去学习一些东西,去接触 ...

最新文章

  1. 剑指offer:面试题10- I. 斐波那契数列
  2. IO设计模式:Reactor和Proactor对比
  3. git操作之版本控制
  4. python命令行进入帮助模式_python命令行模式直接查看帮助
  5. SAP CRM one order三层内存模型
  6. 3. 设计模式之创建模式
  7. C算法编程题(七)购物
  8. 系统的延时与定时任务
  9. delta3d中,读取自己的xml配置文件。
  10. android 排队系统设计,基于android银行排队叫号系统毕业设计论文+设计源码+答辩PPT...
  11. laydate点击输入框闪一下不见了_解决layui laydate 时间控件一闪而过的问题
  12. 计算机设备管理器驱动,设备管理器安装驱动程序的详细教程
  13. 全民健身下的体育消费,是怎么升级的?
  14. 使用Free Spire.Doc for Java 处理word文档换行
  15. python数据分析(六)—数据清洗2
  16. 【面试】上海 java开发工程师/自动化测试开发工程师 面试题
  17. CentOS全版本 阿里云下载详细教程
  18. windows添加右键菜单
  19. 图灵奖得主Geoffrey Hinton最新研究:利用神经网络对有关节三维模型进行估计的方法NASA
  20. 【数据结构】链表的增删改查| 组件化封装

热门文章

  1. The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path
  2. ReactNative 公共脱敏处理js 包括银行卡 身份证号 手机号企业名称 营业执照 邮箱号码 等等
  3. 更加清晰的报名要点讲解视频(附图文介绍)
  4. Python吴恩达深度学习作业15 -- YOLO原理及应用(自动驾驶——汽车检测)
  5. mfc treectrl设置背景透明_微信透明头像怎么弄 专用透明头像图片更换设置教程闽南网...
  6. HDOJ 2504 又见GCD (水题)
  7. flutter dart 中dynamic var object的区别
  8. STM32单片机实现二维码显示
  9. scala特征加工中的报错记录和调试
  10. win10装win7装win7