写服务器监听器listener的时候一直报空指针异常,java.lang.NullPointerException

本文分享了在使用MyBatis时遇到的空指针异常问题及解决过程。作者最初因resultType配置错误导致异常,通过调整为具体实体类或指定resultMap解决。同时,文中提及了在监听器中直接调用service的误区,强调了正确初始化方法的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在写服务器监听器listener的时候一直报空指针异常,java.lang.NullPointerException

在这里插入图片描述
一开始是resultType写的不对,写的java.util.List,后来查阅资料发现即使是返回一个list,resultType也应该写Restaurant或者写resultMap=“BaseResultMap”,在这里插入图片描述

在监听器里面不可以这样取service

在这里插入图片描述
在这里插入图片描述

初始化方法中用到service的话可以这样写。

在这里插入图片描述
因为空指针这个错误,让我一度怀疑没有参数的mapper方法是不是不可以,还去试了collection和association,调了几个小时,人都要傻了,第一次调程序调的这么难受,因为它一直报空指针,我就把目光一直集中在了我的service,mapper以及xml中的sql语句的resultType,resultMap上。还一直查@Service(“RestaurantService”),@Autowired@Qualifier(“RestaurantMapper”),@Repository(“RestaurantMapper”),以及mapper和sql里面的id方法名有没有写错。还是自己学的不扎实,不过好在最后终于解决了,谢天谢地。

2025-07-24 15:01:48.166 ERROR 10536 --- [ main] o.s.boot.SpringApplication : Application run failed java.lang.IllegalStateException: Failed to execute CommandLineRunner at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:795) at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:776) at org.springframework.boot.SpringApplication.run(SpringApplication.java:319) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1247) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1236) at com.zjq.highlevel.HighLevelApplication.main(HighLevelApplication.java:23) Caused by: java.lang.NullPointerException: null at com.zjq.highlevel.service.tenant.impl.DbInfoServiceImpl.cashScholl(DbInfoServiceImpl.java:39) at com.zjq.highlevel.service.tenant.impl.DbInfoServiceImpl.byIdCache(DbInfoServiceImpl.java:30) at com.zjq.highlevel.service.tenant.impl.DbInfoServiceImpl$$FastClassBySpringCGLIB$$d60eda00.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) at com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationInterceptor.invoke(DynamicDataSourceAnnotationInterceptor.java:50) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) at com.zjq.highlevel.service.tenant.impl.DbInfoServiceImpl$$EnhancerBySpringCGLIB$$57c8e438.byIdCache(<generated>) at com.zjq.highlevel.config.runner.DatabaseInitializer.run(DatabaseInitializer.java:56) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:792) ... 5 common frames omitted
07-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值