news 2026/4/18 10:26:52

【若依】RuoYi-Vue-springboot3分离版更新spring boot3踩坑整理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【若依】RuoYi-Vue-springboot3分离版更新spring boot3踩坑整理

1、jdk由原来的jdk8更新为openjdk21

2、由于Spring Boot 3.0将所有底层依赖项从Java EE 迁移到 Jakarta EE,会对一些使用了Java EE的方法造成影响,需要进行相应的修改和调整。

1)将替换成 javax.xxxx替换成jakarta.xxxx,例如

import javax.annotation 替换成 jakarta.annotation import javax.servlet 替换成 jakarta.servlet import javax.validation 替换成 jakarta.validation import javax.xxxxxxxxxx 替换成 jakarta.xxxxxxxxxx

2)注意代码生成模板controller.java.vm中也需要换一下将javax替换为jakarta。

但是有些原生方法是不需要去进行修改的,例如项目中的这几个方法,包不需要替换成jakarta.xxxx

import javax.imageio.ImageIO; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import javax.sql.DataSource

PS:如果嫌麻烦可以使用idea自带的转换功能

3、集成mybatis plus,用于增强mybatis。

1)ruoyi-common\pom.xml模块 添加依赖

由于mybatis plus原先版本已经不兼容spring boot3,需要将原来的mybatis plus升级为3.5.10。如下所示:

<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.16</version> </dependency> <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.10</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-jsqlparser</artifactId> <version>3.5.10</version> </dependency>

2)ruoyi-admin模块的文件application.yml,修改mybatis配置为mybatis-plus

# MyBatis Plus配置 mybatis-plus: # 搜索指定包别名 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml

3、添加Mybatis Plus配置 MybatisPlusConfig.java。PS:原来的MyBatisConfig.java 需要删除掉

package com.ruoyi.framework.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; /** * Mybatis Plus 配置 * * @author ruoyi */ @EnableTransactionManagement(proxyTargetClass = true) @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 分页插件 interceptor.addInnerInterceptor(paginationInnerInterceptor()); // 乐观锁插件 interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor()); // 阻断插件 interceptor.addInnerInterceptor(blockAttackInnerInterceptor()); return interceptor; } /** * 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html */ public PaginationInnerInterceptor paginationInnerInterceptor() { PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); // 设置数据库类型为mysql paginationInnerInterceptor.setDbType(DbType.MYSQL); // 设置最大单页限制数量,默认 500 条,-1 不受限制 paginationInnerInterceptor.setMaxLimit(-1L); return paginationInnerInterceptor; } /** * 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html */ public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor() { return new OptimisticLockerInnerInterceptor(); } /** * 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html */ public BlockAttackInnerInterceptor blockAttackInnerInterceptor() { return new BlockAttackInnerInterceptor(); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:25:43

WhisperX语音识别工具:为什么它比传统方案更值得选择?

WhisperX语音识别工具&#xff1a;为什么它比传统方案更值得选择&#xff1f; 【免费下载链接】whisperX m-bain/whisperX: 是一个用于实现语音识别和语音合成的 JavaScript 库。适合在需要进行语音识别和语音合成的网页中使用。特点是提供了一种简单、易用的 API&#xff0c;支…

作者头像 李华
网站建设 2026/4/18 10:06:35

NFT项目方如何建立社区信任?用Anything-LLM发布透明FAQ

NFT项目方如何建立社区信任&#xff1f;用Anything-LLM发布透明FAQ 在NFT项目运营中&#xff0c;最常听到的抱怨是什么&#xff1f; “官方从不回复我。” “昨天说的事今天又变了。” “Discord消息刷屏太快&#xff0c;根本找不到答案。” “这个项目靠谱吗&#xff1f;连审计…

作者头像 李华
网站建设 2026/4/18 2:56:12

终极指南:如何用Creo2Urdf实现机械设计到机器人模型的智能转换

终极指南&#xff1a;如何用Creo2Urdf实现机械设计到机器人模型的智能转换 【免费下载链接】creo2urdf Generate URDF models from CREO mechanisms 项目地址: https://gitcode.com/gh_mirrors/cr/creo2urdf 在机器人技术快速迭代的今天&#xff0c;从CAD设计到仿真模型…

作者头像 李华
网站建设 2026/4/18 5:44:21

AMD Ryzen Embedded平台全面讲解:PCIe与内存子系统

AMD Ryzen Embedded平台深度解析&#xff1a;PCIe与内存子系统的实战设计哲学从工业边缘计算的“算力焦虑”说起你有没有遇到过这样的场景&#xff1f;一台部署在工厂产线上的视觉检测设备&#xff0c;需要同时处理8路GigE Vision相机输入、运行多个YOLOv5模型推理&#xff0c;…

作者头像 李华
网站建设 2026/4/17 17:00:05

Swift函数参数的终极指南:7个提升代码质量的实用技巧

Swift函数参数的终极指南&#xff1a;7个提升代码质量的实用技巧 【免费下载链接】CICFlowMeter 项目地址: https://gitcode.com/gh_mirrors/cic/CICFlowMeter 掌握Swift函数参数规范是编写高质量Swift代码的关键&#xff0c;良好的参数设计直接影响代码的可读性、安全…

作者头像 李华