springboot中遇到的NullPointerException小问题

本菜鸟在进行springboot项目开发过程中,不止一次经历过NullPointerException报错,最多是@Autowired注解的内容是空的。一开始我还以为是数据库访问操作导致的。简单而不形象的说一下正确的做法就是想使用@Autowired注解的service或者mapper的这个类,他本身也一定是有注解的。如果自己随便创建一个class,这个class没有被标记为mapper、controller啥的,里面想调用一个mapper,到最后就会报NullPointerException。

接下来记录一下我遇到的情况。

我定义了一个线程类,采用单例模式,每当我负责监听的端口收到消息后就放到一个队列里,然后这个线程就不停从队列里取消息进行处理。在处理的过程中需要调用我的mapper来将处理好的消息存入数据库。由于我的线程类不太适合定义成controller或service什么的,再加上一开始不知道想调用@Autowired注解的mapper必须这个class本身也有注解,就一直报错空指针。

最后的解决方法是在监听端口(一个加了@RestController注解的controller)中进行

@Autowired

private  PointProcessService ppService;

然后调用线程时将监听端口创建的ppService(我的mapper被创建在这个service里面,这个service当然是有@Service注解的)传到线程里面,这样在线程里就可以直接使用service里面的mapper方法了。


监听消息端口传入service


线程里面接收service


调用mapper的service
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容