关于Spring中java.lang.NullPointerException: Cannot invoke “xxx“ because “xxx“ is null 的问题

关于Spring中java.lang.NullPointerException: Cannot invoke “xxx” because “xxx” is null 的问题

当我好不容易编译成功,开始运行时,使用postman测试接口功能时却返回了一个错误:

编译成功开始运行:在这里插入图片描述
postman返回:
在这里插入图片描述
并在IDEA显示了
java.lang.NullPointerException: Cannot invoke “com.example.mybatisdemo.mapper.StudentMapper.ListStudent()” because “this.studentMapper” is null
错误指向了Service层调用的自动注解的Mapper对象为空。我很确定我的代码没有问题,该有的注解都有,xml也和Mapper文件对应的上,测试端口也没有问题,但无论怎么修改代码,最后都会显示studentMapper is Null。
CSDN或其他网站上的很多解决方法都不能解决我的问题。
最后还是通过修改了pom.xml的配置才能完美运行。
原先的pom.xml配置:
在这里插入图片描述
修改mybatis-spring包的版本到更高版本,比如说2.3.1和3.0.2,重新配置运行后错误解决(选择2.3.1)。
在这里插入图片描述
中间多出来了两段信息,这是mybatis的设置信息,之前没显示可能就和mybatis的配置有关系。使用postman测试接口功能:
在这里插入图片描述
出现了想要的结果,完美解决原先的错误。
刚好之前也在CSDN评论区了解到在配置的时候spring,jdk和其他各个框架的版本需要相互对应上,具体见:
http://mybatis.org/spring/zh/index.html
Java 8+使用较老版本的框架,Java 17+选择较新版本的框架。我用的Java 17选择了2.1.1的包导致出现了该问题。所以更新包之后就能解决,最后选择了3.0.2,测试之后也没有出现问题。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值