首页IT科技spring boot集成mybatisplus(SpringBoot3整合MyBatis报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required)

spring boot集成mybatisplus(SpringBoot3整合MyBatis报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required)

时间2025-09-13 18:06:21分类IT科技浏览5197
导读:遇到了一个 Spring Boot 3 整合 MyBatis 的问题,然后解决了。当然,这其实不是个大问题,只是自己编码时遇到了,然后总结总结分享一下。如果有遇到类似问题的,可以参考一下。...

遇到了一个 Spring Boot 3 整合 MyBatis 的问题               ,然后解决了              。当然                      ,这其实不是个大问题        ,只是自己编码时遇到了       ,然后总结总结分享一下                       。如果有遇到类似问题的                      ,可以参考一下        。

交代一下背景

最近在熟悉 Spring Boot 3 版本的代码               ,开发过程中遇到了一些小坑       ,不过很快都解决了              。然后就用 Spring Boot 3 版本写了几个小 demo                      ,比如 Web 开发               、连接数据库                      、使用 JdbcTemplate 操作数据库               ,编码和测试都非常顺利,虽然是从 Spring Boot 2.x 版本升级到 Spring Boot 3                      ,但是没有感觉到太多差别                      。

不过                      ,在使用 Spring Boot 3 整合 MyBatis 时出现了一些问题,花了不少时间处理        。

使用的版本如下所示       。

Spring Boot 版本配置 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.0-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> MyBatis 版本配置 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency>

问题出现

启动时直接报错               ,内容如下图所示                      。

当然                      ,异常信息挺多        ,比如无法创建 Bean 的异常等等               ,不过上面的几个异常并不是问题主因               。这里我直接定位到最后的异常上                      ,异常信息是:

Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate are required

跟入发生异常的地方        ,代码截图如下:

问题原因也很明显       ,sqlSessionTemplate 对象是空的       。

问题排查

当然                      ,由于把 Spring Boot 版本升级到 3 了               ,所以会觉得有很大的可能是版本升级导致了问题                      。

不过还是想自己查查问题       ,就依次检查了代码        、数据库配置       、MyBatis 配置                      ,都没有发现哪里写错了               ,接着就没头绪了               。之后又看了一下 MyBatis 自动配置的源码,通过 debug 模式看了下是不是有什么问题                      ,在查看源码的过程中看到一个有意思的事情                      ,SqlSessionFactoryBean 这个类直接报红了,如下图所示。

为什么说有意思呢?

正常情况下这个类肯定不会报错的                      。再去查询问题               ,发现 NestedIOException 这个类在 Spring 6 版本中直接删除了                       。对的                      ,直接删除了。而 MyBatis 还没有同步更新        ,所以直接就报红了              。

如果真的是版本升级导致的               ,还真就暂时没法改                      ,只能等 MyBatis 那边也发布新版本才行                       。除了 MyBatis 之外        ,如果使用 Spring Boot 3 直接整合 MyBatis-Plus 这种框架       ,那肯定也会报错的        。

另外                      ,不止是 MyBatis 框架会出问题              。像 Spring 6 这种直接嘎掉一些类的情况               ,如果其它框架里用到了一些 Spring 框架中的类       ,恰好也被嘎了                      。那么                      ,升级到 Spring6 或者 Spring Boot 3 时               ,都得注意一下        。

解决问题:需要升级版本

好的,排查自己的代码没发现问题       。只有去古狗上看看有没有解决方案                      ,搜了一圈                      ,在 MyBatis 的开源仓库里看到了一个类似问题,解决方案也有               ,如下图所示                      。

对的                      ,使用 Spring Boot 3 版本整合 MyBatis 时        ,需要把 mybatis-spring-boot-starter 也升级               。mybatis-spring-boot-starter 2.x 版本暂时还不适配 Spring Boot 3 版本               ,没辙       。另外                      ,由于还没正式发版        ,所以需要配置一个远程仓库                      。

<dependencies> <!-- 引入 3.0.0-SNAPSHOT 版本的 mybatis-spring-boot-starter(未正式发版) --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.0-SNAPSHOT</version> </dependency> </dependencies> <repositories> <!-- 由于未正式发版       ,所以在Maven仓库里还搜不到                      ,需要额外配置一个远程仓库 --> <repository> <id>ossrh</id> <name>OSS Snapshot repository</name> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>

总结

事情不大               ,本来不想单独写篇文章的       ,但是我有个预感                      ,在项目中升级 Spring Boot 3 时还会有其它问题               。不知道 Spring6 这次更新了多少东西               ,连 TM 的MyBatis                      、MyBatis-Plus 这种常用的框架都中招了。这些就慢慢整理吧,毕竟是大版本升级                      ,难免会出现不兼容               、等依赖更新的情况                      。确实没辙                      ,等更新呗                       。

如果这篇文章浪费了你的时间,先说声抱歉               ,你直接关掉网页就好。

因为维护了几个 Spring Boot 的开源项目                      ,Spring Boot 3 正式发版了        ,我也会及时更新版本       、升级这几个 Spring Boot 实战项目              。如果碰到了什么问题               ,也会及时分享出来                       。

项目名称 描述 GitHub仓库地址 Gitee仓库地址 newbee-mall Spring Boot 开源电商实战项目(含商城端和后台管理系统) https://github.com/newbee-ltd/newbee-mall https://gitee.com/newbee-ltd/newbee-mall 项目名称 描述 GitHub仓库地址 Gitee仓库地址 My-Blog Spring Boot 开源博客实战项目 https://github.com/ZHENFENG13/My-Blog https://gitee.com/ZHENFENG13/My-Blog

除注明转载/出处外                      ,皆为作者原创        ,欢迎转载       ,但未经作者同意必须保留此段声明                      ,且在文章页面明显位置给出原文链接               ,否则保留追究法律责任的权利        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
pytorch gpu(CUDA(10.2)+PyTorch安装加配置 详细完整教程) seo链接工具(如何优化seo网站链接)