错误场景:

springboot + mybatis

在工具类的静态方法中,需要使用mapper(其他bean也一样),所以最开始直接使用@Autowired进行了注入,代码如下:

    @Autowiredprivate static Mt4UsersMapper mt4UsersMapper;@Autowiredprivate static UserBankAccountsMapper userBankAccountsMapper;@Autowiredprivate static UserProfilesMapper userProfilesMapper;

接着在下面的静态方法中直接进行了使用,查询数据表(sql语句、数据库数据都正常,理论上是可以查出数据的),然而报了下面的空指针错误:

看了相关资料了解到,这样是无法注入成功的,所以无论你怎么查询都是null,要想在非spring管理下的普通类中注入bean,不能直接用@Autowired进行注入,看了几种办法,这里就只记录一种我认为最简单的@PostConstruct的方式注入的吧 QAQ:

@Component
public class CreateReportTemFileUtil2 {@Autowiredprivate Mt4UsersMapper testmt4UsersMapper;private static Mt4UsersMapper mt4UsersMapper;@Autowiredprivate UserBankAccountsMapper testuserBankAccountsMapper;private static UserBankAccountsMapper userBankAccountsMapper;@Autowiredprivate UserProfilesMapper testuserProfilesMapper;private static UserProfilesMapper userProfilesMapper;@PostConstructpublic void init(){mt4UsersMapper = this.testmt4UsersMapper;userBankAccountsMapper = this.testuserBankAccountsMapper;userProfilesMapper = this.testuserProfilesMapper;}
}

划重点注解也很重要。

这样就注入成功啦!!后面代码直接跑通了,不再一直报空指针异常了,这个方法 不用再新建一个类什么的,感觉还是方便。当然这也是有一定局限性的,因为mapper那边是加了@Repository的。

转载于:https://www.cnblogs.com/xk920/p/10895025.html

关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...相关推荐

  1. autowired 静态方法使用_关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...

    错误场景: springboot + mybatis 在工具类的静态方法中,需要使用mapper(其他bean也一样),所以最开始直接使用@Autowired进行了注入,代码如下: @Autowire ...

  2. 【SpringBoot】如何在静态工具类中注入mapper?

    问题描述 开发过程中偶尔遇到一个问题,一个工具类中的静态方法调用mybatis的mapper接口时,会出现@Autowired无法注入的问题,即使添加了这个注解,spring容器加载完成声明的参数也是 ...

  3. SpringBoot 中@Autowired 注入失效原因及解决方法

    SpringBoot 中@Autowired 注入失效原因及解决方法 1.原因分析 1.1 包没有被扫描到通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径 ...

  4. Spring中,使用工具类无法自动注入service

    这个问题我其实遇到很久了,目前解决方案是手动注入service,并且把工具类也手动注入. 场景: 在spring中,我们经常会定义工具类来做一些奇怪的事情,我当前是通过定时任务quarz调度工具类,工 ...

  5. springboot在工具类中添加service的方法,显示为空的解决方案

    springboot在工具类中添加service的方法,显示为空的解决方案 参考文章: (1)springboot在工具类中添加service的方法,显示为空的解决方案 (2)https://www. ...

  6. SpringBoot项目中如何在静态工具类中使用被Spring容器管理的对象

    在开发的过程中,难免会碰到需要在工具类中使用由spring管理的对象的情况,但是我们都知道,工具类中的静态方法中无法引用spirng容器中的对象(被spring管理的对象不是静态的,静态方法中无法调用 ...

  7. Android中怎样在工具类中获取Context对象

    场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...

  8. Winform中怎样在工具类中对窗体中多个控件进行操作(赋值)

    场景 需求是在窗体加载完成后掉用工具类的方法,工具类中获取窗体的多个控件对象进行赋值. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...

  9. Spring MVC普通类或工具类中调用service报空空指针的解决办法(调用service报java.lang.NullPointerException)...

    当我们在非Controller类中应用service的方法是会报空指针,如图: 这是因为Spring MVC普通类或工具类中调用service报空null的解决办法(调用service报java.la ...

最新文章

  1. mysql 运算符 =,:=,@,@@的含义
  2. 概率分布,先懂这6个
  3. Linux下做双向同步
  4. js文件里获取路由 vue_「如何优雅的使用Vue?」不可不知的Vue实战技巧
  5. Block相关内容梳理
  6. php 订单取消,php – 当订单状态从挂起更改为已取消时发送电子邮件通知
  7. 知名论坛猴岛游戏论坛宣布永久关闭!
  8. Redis源码分析之工具类util
  9. 服务器训练数据 关闭终端,一文明白使用nohup将服务器训练程序后台运行不关闭+随时通过查看训练情况输出与visdom可视化...
  10. excel群发邮件 支持html,在Excel中利用VBA实现邮件的群发实例
  11. delphi7 如何判定dbgrid两行重复_良渚文化陶器上的图案、符号和文字(5)良渚文化陶器上文字的判定...
  12. python中的分支语句
  13. 女生学电气or计算机,8个女生可以学习的工科专业,高三毕业生了解一下,值得报考...
  14. c++,派生类对象可以对基类赋值,基类对派生类不可以赋值
  15. RIA and volta
  16. C++和C语言的前世今生,两者有什么血缘关系?
  17. HCNP学习笔记之OSPF协议原理及配置9-基础知识特殊区域
  18. 栈区的使用规则、压栈和出栈、栈区先进后出,后进先出
  19. vue图片时间轴滑动_vue 写的时间区间拖动控件
  20. BASIS ADM 100标准课程中文版本

热门文章

  1. Android Studio使用笔记
  2. Android控件ActionBar浅析及适配2.x的方法介绍
  3. Activiti工作流之业务标识和流程的挂起激活
  4. Collection、泛型
  5. Shared pool内存块组成结构及4031错误原因分析
  6. Servlet3.1 新增的非阻塞式IO
  7. 深究AngularJS——校验(非form表单)
  8. C语言中用栈实现进制转换,利用栈实现进制转换问题
  9. android unity hook,[原创]Unity3d安卓游戏DLL动态调式与HOOK基础
  10. html5的网页布局工具,HTML5网站响应式布局的主流设计方法介绍及工具推荐