关于Spring中java.lang.NullPointerException: Cannot invoke “xxx“ because “xxx“ is null 的问题
作者:mmseoamin日期:2023-12-20

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

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

编译成功开始运行:关于Spring中java.lang.NullPointerException: Cannot invoke “xxx“ because “xxx“ is null 的问题,在这里插入图片描述,第1张

postman返回:

关于Spring中java.lang.NullPointerException: Cannot invoke “xxx“ because “xxx“ is null 的问题,在这里插入图片描述,第2张

并在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配置:

关于Spring中java.lang.NullPointerException: Cannot invoke “xxx“ because “xxx“ is null 的问题,在这里插入图片描述,第3张

修改mybatis-spring包的版本到更高版本,比如说2.3.1和3.0.2,重新配置运行后错误解决(选择2.3.1)。

关于Spring中java.lang.NullPointerException: Cannot invoke “xxx“ because “xxx“ is null 的问题,在这里插入图片描述,第4张

中间多出来了两段信息,这是mybatis的设置信息,之前没显示可能就和mybatis的配置有关系。使用postman测试接口功能:

关于Spring中java.lang.NullPointerException: Cannot invoke “xxx“ because “xxx“ is null 的问题,在这里插入图片描述,第5张

出现了想要的结果,完美解决原先的错误。

刚好之前也在CSDN评论区了解到在配置的时候spring,jdk和其他各个框架的版本需要相互对应上,具体见:

http://mybatis.org/spring/zh/index.html

Java 8+使用较老版本的框架,Java 17+选择较新版本的框架。我用的Java 17选择了2.1.1的包导致出现了该问题。所以更新包之后就能解决,最后选择了3.0.2,测试之后也没有出现问题。