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

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

时间2025-06-20 16:04:04分类IT科技浏览4067
导读:遇到了一个 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
帝国cms界面(帝国CMS提示“您来自的链接不存在”怎么解决?)