关于 mybatis-spring-boot-starter 的版本适配问题

发布时间 2023-05-08 17:06:38作者: Tup178

写在前面:
本人就读于某不知名二本计科专业,目前大二,正在自学SpringBoot。博客中难免出现谬误,请大家批评指正,不喜勿喷,键盘侠手下留情。

开发环境:

  • IDEA 2022.3.2
  • JDK 1.8
  • SpringBoot 2.7.11
  • Maven 3.9.0

问题描述:
最近在写一个SpringBoot项目,整合了Mybatis,在程序运行时出现如下报错

其中关键性的一句已经标出
Caused by: java.lang.UnsupportedClassVersionError: org/mybatis/spring/boot/autoconfigure/MybatisLanguageDriverAutoConfiguration has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
谷歌翻译为“由 java lang unsupported class version error 引起 org mybatis spring boot autoconfigure mybatis language driver auto configuration has been compiled by a more recent version of the java runtime class file version 61 0 此版本的 java runtime 仅识别 class 文件版本高达 52 0”
大概意思就是编译时的版本(61.0)高于执行是的版本(52.0)

Mybatis相关Maven依赖

报错原因:
查阅资料后找到报错原因为 SpringBoot 与 JDK 版本冲突。
查阅 SpringBoot 官方文档后发现 SpringBoot 2.7.11 需要 JDK 1.8 及以上版本

可是我的 JDK 版本就是 1.8 呀。
最后,寻因无果。

解决方法:
再次查看错误提示,
org/mybatis/spring/boot/autoconfigure/MybatisLanguageDriverAutoConfiguration
发现其中这一段代码的意思好像是由于Mybatis自动装配时出现的错误,既然这样,
那我就尝试了将mybatis-spring-boot-starter版本降为2.3.0,结果,运行成功了!

写在后面:
虽然此次没有将报错原因找出来,但是也找到了解决方法,也算改好了bug。
如果有大神知道具体的报错原因,请在评论区里交流。