Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

项目场景:

最近因为公司业务需要在搭一个新架构,用的springboot3和jdk17,在整合mybatis多数据源的时候报错

(引用的mybatisplus 和 mybatisplusjion的是最新的包-2023-08-26)

Error creating bean with name 'XXXServiceImpl': Unsatisfied dependency expressed through field 'baseMapper': Error creating bean with name 'XXXMapper' defined in file [XXXXMapper.class]: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required


问题描述

各模块引入的相关jar包

java 复制代码
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                <version>4.1.3</version>
            </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-annotation</artifactId>
             <version>3.5.3.2</version>
        </dependency>
        <dependency>
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
             <version>42.3.3</version>
        </dependency>        
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
             <version>3.5.3.2</version>
        </dependency>            
        <dependency>
            <groupId>com.github.yulichang</groupId>
            <artifactId>mybatis-plus-join-boot-starter</artifactId>
            <type>pom</type>
            <version>1.4.6</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.2</version>
        </dependency>

1、首先我想到的是不是mapper和service没有扫描到(网上基本都是说这个原因)

结果:不是这个原因

2.是不是版本冲突导致自动注入数据源失败

下载依赖冲突扫描工具对各个模块进行扫描



结果:不是这个原因

3.这时候我想到了是不是我都引入的多数据源jar包有问题--dynamic

放弃了这个想法 之前的项目都是用的这个jar包

4.开始各种百度

https://blog.csdn.net/ZHENFENGSHISAN/article/details/128010240

上问说是mybatis-spring-boot-starter的版本问题 我已经引入了mybatisplus最新版本 所有不是这个问题

有文说启动类问题

https://blog.csdn.net/hsuehgw/article/details/129090720

我尝试了下 不行

因为我是多数据源 又有文章说 把启动类 调整为 @SpringBootApplication 在yml去排除

继续尝试不行

**5.到这里我完全肯定就是jar包问题

sqlSessionFactory为空,我的mybatisplus相关jar包没问题 都是工具官方文档来的 很大可能是dynamic的包

之前没有怀疑是因为直接从其他项目负cv来的

那就开始排查这jar包和jdk版本和springboot版本有没有冲突

java 复制代码
     <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
          <version>4.1.3</version>
    </dependency>

dynamic文档

https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611

额 dynamic-datasource 官方 直接把 springboot3 依赖的jar包给变了
调整依赖解决

相关推荐
日月云棠6 小时前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840827 小时前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide7 小时前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家8 小时前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺8 小时前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户908324602738 小时前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端
桦说编程9 小时前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题
java·后端·性能优化
程序员清风13 小时前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试
beata13 小时前
Java基础-13: Java反射机制详解:原理、使用与实战示例
java·后端
用户03321266636714 小时前
Java 使用 Spire.Presentation 在 PowerPoint 中添加或删除表格行与列
java