关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...
错误场景:
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时报空指针异常错误...相关推荐
- autowired 静态方法使用_关于springboot工具类中@Autowired注入bean,用static直接修饰,静态方法使用bean时报空指针异常错误...
错误场景: springboot + mybatis 在工具类的静态方法中,需要使用mapper(其他bean也一样),所以最开始直接使用@Autowired进行了注入,代码如下: @Autowire ...
- 【SpringBoot】如何在静态工具类中注入mapper?
问题描述 开发过程中偶尔遇到一个问题,一个工具类中的静态方法调用mybatis的mapper接口时,会出现@Autowired无法注入的问题,即使添加了这个注解,spring容器加载完成声明的参数也是 ...
- SpringBoot 中@Autowired 注入失效原因及解决方法
SpringBoot 中@Autowired 注入失效原因及解决方法 1.原因分析 1.1 包没有被扫描到通过@Autowired注入的类所在的包路径不在Application启动类所在的包/子包路径 ...
- Spring中,使用工具类无法自动注入service
这个问题我其实遇到很久了,目前解决方案是手动注入service,并且把工具类也手动注入. 场景: 在spring中,我们经常会定义工具类来做一些奇怪的事情,我当前是通过定时任务quarz调度工具类,工 ...
- springboot在工具类中添加service的方法,显示为空的解决方案
springboot在工具类中添加service的方法,显示为空的解决方案 参考文章: (1)springboot在工具类中添加service的方法,显示为空的解决方案 (2)https://www. ...
- SpringBoot项目中如何在静态工具类中使用被Spring容器管理的对象
在开发的过程中,难免会碰到需要在工具类中使用由spring管理的对象的情况,但是我们都知道,工具类中的静态方法中无法引用spirng容器中的对象(被spring管理的对象不是静态的,静态方法中无法调用 ...
- Android中怎样在工具类中获取Context对象
场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...
- Winform中怎样在工具类中对窗体中多个控件进行操作(赋值)
场景 需求是在窗体加载完成后掉用工具类的方法,工具类中获取窗体的多个控件对象进行赋值. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...
- Spring MVC普通类或工具类中调用service报空空指针的解决办法(调用service报java.lang.NullPointerException)...
当我们在非Controller类中应用service的方法是会报空指针,如图: 这是因为Spring MVC普通类或工具类中调用service报空null的解决办法(调用service报java.la ...
最新文章
- mysql 运算符 =,:=,@,@@的含义
- 概率分布,先懂这6个
- Linux下做双向同步
- js文件里获取路由 vue_「如何优雅的使用Vue?」不可不知的Vue实战技巧
- Block相关内容梳理
- php 订单取消,php – 当订单状态从挂起更改为已取消时发送电子邮件通知
- 知名论坛猴岛游戏论坛宣布永久关闭!
- Redis源码分析之工具类util
- 服务器训练数据 关闭终端,一文明白使用nohup将服务器训练程序后台运行不关闭+随时通过查看训练情况输出与visdom可视化...
- excel群发邮件 支持html,在Excel中利用VBA实现邮件的群发实例
- delphi7 如何判定dbgrid两行重复_良渚文化陶器上的图案、符号和文字(5)良渚文化陶器上文字的判定...
- python中的分支语句
- 女生学电气or计算机,8个女生可以学习的工科专业,高三毕业生了解一下,值得报考...
- c++,派生类对象可以对基类赋值,基类对派生类不可以赋值
- RIA and volta
- C++和C语言的前世今生,两者有什么血缘关系?
- HCNP学习笔记之OSPF协议原理及配置9-基础知识特殊区域
- 栈区的使用规则、压栈和出栈、栈区先进后出,后进先出
- vue图片时间轴滑动_vue 写的时间区间拖动控件
- BASIS ADM 100标准课程中文版本
热门文章
- Android Studio使用笔记
- Android控件ActionBar浅析及适配2.x的方法介绍
- Activiti工作流之业务标识和流程的挂起激活
- Collection、泛型
- Shared pool内存块组成结构及4031错误原因分析
- Servlet3.1 新增的非阻塞式IO
- 深究AngularJS——校验(非form表单)
- C语言中用栈实现进制转换,利用栈实现进制转换问题
- android unity hook,[原创]Unity3d安卓游戏DLL动态调式与HOOK基础
- html5的网页布局工具,HTML5网站响应式布局的主流设计方法介绍及工具推荐