news 2026/4/16 18:15:35

【若依】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/16 12:45:36

Swift计算属性终极指南:get关键字省略的完整实践

Swift计算属性终极指南&#xff1a;get关键字省略的完整实践 【免费下载链接】translate-api Client for Yandex.Translate API 项目地址: https://gitcode.com/gh_mirrors/tra/translate-api 在Swift编程的世界里&#xff0c;计算属性是提升代码质量的重要工具。对于新…

作者头像 李华
网站建设 2026/4/16 15:49:21

GPT-SoVITS模型微调全攻略:从预训练到定制化输出

GPT-SoVITS模型微调全攻略&#xff1a;从预训练到定制化输出 在智能语音助手、虚拟偶像和个性化有声内容日益普及的今天&#xff0c;用户不再满足于“能说话”的机械音——他们想要的是熟悉的声音、自然的语调、富有情感的表达。然而&#xff0c;传统语音合成系统往往需要数小时…

作者头像 李华
网站建设 2026/4/16 14:22:49

SiFive RISC-V外设驱动开发:GPIO与UART项目应用

从点亮LED到串口通信&#xff1a;SiFive RISC-V外设驱动实战全解析你有没有过这样的经历&#xff1f;手握一块崭新的RISC-V开发板&#xff0c;满怀期待地烧录代码&#xff0c;结果LED不亮、串口无输出——系统仿佛“死”在了启动阶段。这时候你才意识到&#xff0c;再强大的核心…

作者头像 李华
网站建设 2026/4/15 15:28:13

35、利用Logstash收集、解析和转换数据

利用Logstash收集、解析和转换数据 1. 简介 在日志分析或事件分析系统中,ELK Stack扮演着重要角色。Logstash作为ELK Stack中极为重要的组件,能够帮助我们收集、解析和转换任何格式和类型的数据,将其转化为通用格式,进而用于构建各种应用场景下的分析系统。 2. Logstash…

作者头像 李华
网站建设 2026/4/16 13:43:54

37、ELK 栈中的 Elasticsearch 与 Kibana 深度解析

ELK 栈中的 Elasticsearch 与 Kibana 深度解析 1. Elasticsearch 基础概念 在 ELK 栈中,Elasticsearch 扮演着核心角色,它是一个分布式搜索和分析引擎。下面我们先了解 Elasticsearch 中的节点相关知识。 1.1 节点类型 Elasticsearch 中的节点是其运行的单个实例,默认会…

作者头像 李华
网站建设 2026/4/15 20:09:53

38、利用 ELK 栈进行日志分析与可视化

利用 ELK 栈进行日志分析与可视化 1. Kibana 可视化与仪表盘基础 Kibana 提供了强大的可视化和仪表盘功能,基于 Elasticsearch 索引,我们可以创建各种类型的图表和图形,还能构建包含各种分析的仪表盘,并且可以轻松嵌入或与他人共享。 1.1 可视化页面 可视化页面可帮助我…

作者头像 李华