您的位置:首页 > 科技 > 能源 > 上海seo_网站免费源码_自动seo优化_百度打开

上海seo_网站免费源码_自动seo优化_百度打开

2025/5/10 22:41:49 来源:https://blog.csdn.net/RodJohnsonDoctor/article/details/146983449  浏览:    关键词:上海seo_网站免费源码_自动seo优化_百度打开
上海seo_网站免费源码_自动seo优化_百度打开

Spring Boot 2.6.15 + MyBatis-Plus 3.5.1 升级至 3.3.2 + 3.5.7 全流程指南


一、核心依赖对比与关键变更

1.1 Spring Boot 父级依赖升级

<!-- 升级前 -->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.15</version>
</parent><!-- 升级后 -->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.2</version>
</parent>

关键变更
• JDK 17+ 强制要求(原为 JDK 1.8)
• Jakarta EE 9+ 命名空间替代 Java EE(所有 javax.* 需改为 jakarta.*


1.2 MyBatis-Plus 依赖重构

<!-- 升级前 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version></dependency>
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency><!-- 升级后 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version><exclusions><exclusion><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId></exclusion></exclusions>
</dependency>

关键变更
• 必须使用 mybatis-plus-spring-boot3-starter 适配 Spring Boot 3.x
• 显式排除旧版 SQL 解析器(避免与 JDK 17 冲突)

兼容性说明:MyBatis-Plus 3.5.7 是 Spring Boot 3.x 的专用适配版本,需使用 替代旧版 starter。

问题风险:需检查是否排除旧版依赖(如原 mybatis-spring-boot-starter 已注释掉,符合要求)。


1.3 编译环境调整

<!-- 升级前 -->
<plugin><configuration><source>1.8</source><target>1.8</target></configuration>
</plugin><!-- 升级后 -->
<plugin><configuration><source>17</source><target>17</target></configuration>
</plugin>

必要性:Spring Boot 3.x 编译要求 JDK 17+ 字节码


二、配置层改造要点

2.1 MyBatis-Plus 配置适配

# 升级前配置
mybatis-plus:mapper-locations: classpath*:mapper/**/*.xml# 升级后新增配置
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type: auto

注意事项
• 移除 mybatis-spring-boot-starter 依赖(已由新 starter 包含)
• 分页插件需改用 MybatisPlusInterceptor 配置


2.2 分页插件重构示例

@Configuration
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}

变更说明:旧版 PaginationInterceptor 已废弃


三、代码层适配策略

3.1 核心 API 变更适配

// 升级前用法
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("status", 1);// 升级后推荐写法
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.eq(User::getStatus, 1);

优势:避免 SQL 注入风险,支持编译期字段检查


3.2 事务注解迁移

// 升级前
import javax.transaction.Transactional;// 升级后
import jakarta.transaction.Transactional;

注意:需全局替换所有 javax.persistencejavax.servlet 引用


四、验证与调试

4.1 健康检查验证

management.endpoints.web.exposure.include=health,info

访问 /actuator/health 确认数据源状态


4.2 SQL 日志监控

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

作用:实时输出执行的 SQL 语句


五、典型问题解决方案

5.1 依赖冲突排查

mvn dependency:tree -Dincludes=com.baomidou,com.github.jsqlparser

常见冲突点
mybatis-plus-boot-starter 残留(需完全移除)
jsqlparser 版本需 ≥4.9(已通过 exclusion 解决)


5.2 自动填充失效

@Component
public class MetaHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());}
}

修复要点:必须实现 strictInsertFill 方法


六、升级后技术全景

组件升级前版本升级后版本关键特性
Spring Boot2.6.153.3.2原生支持 JDK 17 LTS,Jakarta EE 9+
MyBatis-Plus3.5.13.5.7增强 Lambda 表达式支持,分页插件重构
SQL 解析器jsqlparser 3.2jsqlparser 4.9支持 JDK 17 语法特性

参考资料
MyBatis-Plus 3.5.7 官方升级日志
Spring Boot 3.x 迁移指南

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com