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包

            <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没有扫描到(网上基本都是说这个原因)
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required_第1张图片
结果:不是这个原因

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

下载依赖冲突扫描工具对各个模块进行扫描
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required_第2张图片
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required_第3张图片
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required_第4张图片
结果:不是这个原因

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
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required_第5张图片
我尝试了下 不行
因为我是多数据源 又有文章说 把启动类 调整为 @SpringBootApplication 在yml去排除
在这里插入图片描述
继续尝试不行

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

sqlSessionFactory为空,我的mybatisplus相关jar包没问题 都是工具官方文档来的 很大可能是dynamic的包
之前没有怀疑是因为直接从其他项目负cv来的

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

     <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
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required_第6张图片
额 dynamic-datasource 官方 直接把 springboot3 依赖的jar包给变了
调整依赖解决

你可能感兴趣的:(java,开发语言)