2025-05-07 16:03

springboot整合mybatisplus版本对应关系

王姐姐

Java后端

(169)

(0)

收藏

一、官方推荐版本匹配表

| Spring Boot 版本 | MyBatis-Plus 版本 | 关键特性支持                  | 注意事项                     |

|----------------------|-----------------------|---------------------------------|--------------------------------|

| 3.0.x (JDK17+)       | 3.5.3+                | 支持Jakarta EE 9+               | 需Java 17,旧项目慎升            |

| 2.7.x                | 3.5.2                 | 最稳定企业级组合                 | 推荐新项目使用                   |

| 2.5.x - 2.6.x        | 3.4.3 - 3.5.1         | 兼容性强                        | 适合保守升级的项目               |

| 2.3.x - 2.4.x        | 3.3.2 - 3.4.2         | 支持JDK8                        | 部分新特性缺失                   |

| ≤ 2.2.x              | ≤ 3.3.1               | 仅维护模式                      | 存在已知安全漏洞,建议升级        |

二、版本选择策略

  1. SpringBoot2.7.x+MybatisPlus3.5.x(新项目推荐组合)

<!-- Spring Boot 2.7.x + MyBatis-Plus 3.5.2 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.18</version>
</parent>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>

优势:  

- 支持所有MP最新功能(如`LambdaQueryWrapper`优化)  

- Spring Boot官方长期维护分支  

2. SpringBoot3.0.x+MybatisPlus3

<!-- Spring Boot 3.0.x + MyBatis-Plus3 3.5.2 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.4</version>
</parent>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.12</version>
</dependency>

三、常见问题解决方案

1. 版本冲突报错1

NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty

原因:MP版本与Spring Boot不兼容  

解决:  

<!-- 排除旧版本依赖 -->
<exclusions>
    <exclusion>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-core</artifactId>
    </exclusion>
</exclusions>

2. 版本冲突报错2

如果springboot使用3.X版本但是mybatisplus没有boot3版本则报错:

image.png


3. 新特性适配

- 问题:Spring Boot 3.x + MP 3.5.x 需注意:  

  - 包路径从`javax`改为`jakarta`  

  - 需显式配置`@MapperScan("com.xxx.mapper")`  

4. 分页插件配置差异

// MP 3.4.x 配置方式
@Bean
public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();
}
// MP 3.5.x 配置方式
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
    return interceptor;
}

四、企业级实践建议

1. 版本锁定:  

   在父POM中固定版本,避免传递依赖冲突:

   <dependencyManagement>
       <dependencies>
           <dependency>
               <groupId>com.baomidou</groupId>
               <artifactId>mybatis-plus-boot-starter</artifactId>
               <version>3.5.2</version>
           </dependency>
       </dependencies>
   </dependencyManagement>

2. 功能验证清单:  

   - [x] 自动填充(`@TableField(fill = FieldFill.INSERT)`)  

   - [x] 多租户SQL解析(`TenantLineInnerInterceptor`)  

   - [x] 性能分析插件(`PerformanceInterceptor`)  

3. 监控指标:  

   整合Prometheus监控MP的:  

   - SQL执行耗时  

   - 连接池状态  

   - 缓存命中率  

五、版本支持时间表

| MyBatis-Plus 版本 | 维护状态 | 停止支持时间 |

|-----------------------|-------------|----------------|

| 3.5.x                 | 积极维护     | 2025年底        |

| 3.4.x                 | 仅安全更新   | 2024年6月       |

| ≤ 3.3.x               | 停止维护     | 已终止          |

总结:  

- 保守选择:Spring Boot 2.7.x + MP 3.5.2(推荐大多数项目)  

- 前沿技术:Spring Boot 3.1.x + MP 3.5.3(需JDK17+)  

- 规避风险:避免使用已停止维护的组合(如Spring Boot 2.1.x + MP 3.1.x)  

0条评论

点击登录参与评论