将若依(RuoYi)框架从适配 Spring Boot 2 的版本升级到 Spring Boot 3

简介: 将若依(RuoYi)框架从适配 Spring Boot 2 的版本升级到 Spring Boot 3,这是一个涉及依赖、配置、API 兼容等多方面的系统性升级工作。

 

你想要将若依(RuoYi)框架从适配 Spring Boot 2 的版本升级到 Spring Boot 3,这是一个涉及依赖、配置、API 兼容等多方面的系统性升级工作。

一、升级前准备

  1. 确认若依版本:优先选择若依官方已适配 Spring Boot 3 的版本(如 RuoYi v4.7.0+ 有适配分支),若使用自定义改造版本,需逐一处理兼容性问题。
  2. 环境要求:Spring Boot 3 要求 JDK 17+(放弃 JDK 8/11 支持),需先升级本地 / 服务器 JDK 到 17 及以上。
  3. 备份代码:升级前完整备份项目代码,避免升级过程中代码丢失。

二、核心升级步骤

1. 升级 Maven/Gradle 依赖

核心是修改 pom.xml(Maven)或 build.gradle(Gradle)中的依赖版本,以下以 Maven 为例:

(1)修改父依赖为 Spring Boot 3
<!-- 原 Spring Boot 2 依赖 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.12</version>
    <relativePath/>
</parent>
<!-- 升级为 Spring Boot 3.x(推荐 3.2.x 稳定版) -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.3</version>
    <relativePath/>
</parent>

image.gif

(2)升级 Spring Cloud 依赖(若使用微服务版本)

Spring Boot 3 对应 Spring Cloud 2022.x 及以上版本(不再使用 Finchley/Greenwich 等版本号,改为年份命名):

<!-- Spring Cloud 版本管理 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2022.0.4</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

image.gif

(3)升级若依核心依赖

若依核心依赖需适配 Spring Boot 3,建议使用官方适配版本:

<!-- 若依核心依赖(以单体版为例) -->
<dependency>
    <groupId>com.ruoyi</groupId>
    <artifactId>ruoyi-common</artifactId>
    <version>4.8.0</version> <!-- 4.8.0+ 适配 Spring Boot 3 -->
</dependency>

image.gif

4)替换不兼容依赖
  • Spring Boot 3 移除了 javax.* 包,替换为 jakarta.*(核心变更):
<!-- 原 JAXB 依赖(javax) -->
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
</dependency>
<!-- 替换为 jakarta 版本 -->
<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>4.0.2</version>
    <scope>runtime</scope>
</dependency>

image.gif

校验相关依赖(如 Hibernate Validator):

<!-- Spring Boot 3 中 validator 已适配 jakarta -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

image.gif

2. 修改配置文件

(1)移除 / 替换过时配置

Spring Boot 3 废弃了部分配置项,需调整 application.yml/application.properties

  • server.servlet.context-path 改为 server.servlet.context-path(无变化,但需检查其他配置);
  • 数据源配置无核心变化,但需确保数据库驱动适配 JDK 17(如 MySQL 驱动升级到 8.0.30+):
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
    username: root
    password: root

image.gif

(2)调整日志配置(可选)

Spring Boot 3 对日志框架的适配无大变化,但需确保 logback.xml 中无 javax.* 相关引用。

3. 代码层面兼容修改

(1)替换 javaxjakarta 导入

项目中所有 import javax.xxx 需替换为 import jakarta.xxx,核心场景:

// 原导入
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.annotation.PostConstruct;
// 替换为
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.annotation.PostConstruct;

image.gif

Servlet 相关:HttpServletRequestHttpServletResponse 等(若直接导入):

// 原导入
import javax.servlet.http.HttpServletRequest;
// 替换为
import jakarta.servlet.http.HttpServletRequest;

image.gif

2)调整 Spring Security 配置(关键)

Spring Boot 3 对应 Spring Security 6.x,若依的权限模块需适配:

三、测试验证

总结

  • WebSecurityConfigurerAdapter 已被废弃,改为通过 SecurityFilterChain 配置:

// 原配置方式(Spring Boot 2)
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // 权限配置
    }
}
// 升级后(Spring Boot 3/Security 6)
@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/login", "/captcha").permitAll()
                .anyRequest().authenticated()
            )
            .formLogin(form -> form
                .loginProcessingUrl("/login")
                .successHandler(authenticationSuccessHandler)
                .failureHandler(authenticationFailureHandler)
            )
            .logout(logout -> logout
                .logoutUrl("/logout")
                .logoutSuccessHandler(logoutSuccessHandler)
            )
            .csrf(csrf -> csrf.disable()); // 若依默认关闭CSRF,需适配新写法
        return http.build();
    }
}


(3)其他兼容调整

  • 若使用 Redis,Spring Data Redis 3.x 无核心 API 变化,但需确保序列化方式兼容;
  • 若依的定时任务、代码生成器等模块,需检查是否有 javax 相关引用,逐一替换。
  • 编译项目:执行 mvn clean compile,修复所有编译错误(主要是依赖缺失、导入错误);
  • 核心前提:升级 JDK 到 17+,替换所有 javax.* 依赖为 jakarta.*
  • 关键步骤:升级 Spring Boot 3 父依赖、适配 Spring Security 6 配置、替换代码中 javax 导入;
  • 验证重点:编译无错误、启动无异常、核心功能正常,是升级成功的核心标准。
  • 启动项目:检查启动日志,修复 Bean 初始化失败、配置加载异常等问题;
  • 功能测试:验证登录、菜单、权限、数据 CRUD 等核心功能是否正常;
  • 兼容性测试:验证第三方集成(如 OSS、短信、支付)是否适配 JDK 17 + Spring Boot 3。


升级后的源码下载:

https://gitee.com/ruoyieleadmin/ruoyi-ele-admin

    相关文章
    |
    6月前
    |
    消息中间件 NoSQL Java
    spring boot2升级boot3指南
    本文介绍了如何将Spring Boot 2.x升级至Spring Boot 3.x,涵盖使用OpenRewrite自动化重构工具进行代码转换、依赖版本升级、配置属性调整及常见问题处理等内容,帮助开发者高效完成升级工作。
    2368 6
    |
    26天前
    |
    安全 Java API
    Spring Boot 4 升级实战:从3.x到4.0的分步升级保姆级指南
    Spring Boot 4.0于2025年11月发布,基于Spring Framework 7.0,实现模块化(47个轻量自动配置)、JSpecify空安全校验、原生API版本控制等重大升级。镜像减19%、启动快33%,迁移平滑,3.5.x支持至2026年11月。(239字)
    |
    20天前
    |
    SQL 监控 druid
    若依(RuoYi)框架 Druid 配置详解
    核心说明:Druid 是阿里巴巴开源的高性能数据库连接池,兼具连接池管理、SQL监控、防SQL注入、日志记录等核心功能,若依(RuoYi)框架(含RuoYi-Vue、RuoYi-Cloud)已默认集成 Druid,核心配置集中在 application-druid.yml 文件,同时需配合 application.yml 进行环境关联,以下是完整配置解析、实操步骤及常见问题,适配若依框架全版本,兼顾入门使用与进阶优化。
    465 4
    |
    19天前
    |
    人工智能 安全 算法
    AI无界?理性审视:社会无需“全方位”人
    人工智能(AI)的快速普及,让“AI+”渗透到社会生产生活的方方面面,从办公、医疗到教育、家庭,AI似乎成为了“万能解决方案”。但这也引发了深刻思考:社会真的需要方方面面都人工智能吗?本文结合AI应用实际,剖析全方位AI化的利弊,指出AI的价值在于精准适配需求而非全面覆盖,理性布局、有所取舍,才能让AI真正服务于人类社会,避免陷入“技术崇拜”的误区。
    112 33
    |
    20天前
    |
    缓存 NoSQL Java
    若依(RuoYi)框架性能核心:Redis 作用与场景全解析
    若依(RuoYi)框架中 Redis 的核心作用、具体应用场景和关键配置逻辑,我会从核心作用分类、实战应用场景、关键配置、优化建议四个维度拆解,覆盖单体版和微服务版的通用逻辑,让你清楚 Redis 在若依中 “做什么、怎么做、怎么优化”
    259 3
    |
    1月前
    |
    人工智能 自然语言处理 网络安全
    零门槛玩转OpenClaw(Clawdbot):阿里云10分钟一键部署+功能拓展全攻略
    在智能办公与自动化需求爆发的2026年,OpenClaw(前身为Clawdbot、Moltbot)凭借自然语言指令执行、多工具集成、主流大模型兼容等核心优势,成为个人与轻量团队打造专属智能助手的首选工具。与普通聊天机器人不同,它堪称“7×24小时不下班的AI数字员工”,能轻松完成文件处理、日程管理、信息提取、跨工具协同等实操任务,大幅降低重复劳动成本。
    362 8
    |
    20天前
    |
    安全 JavaScript Java
    若依后台权限核心:Spring Security 认证授权详解
    若依(RuoYi)框架整合 Spring Security 的具体实现方式,我会从核心原理、整合步骤、关键配置、实战示例四个维度,结合若依前后端分离版(Spring Boot + Vue)的特点,给出可直接落地的整合方案,帮你理解若依是如何基于 Spring Security 实现权限管控
    114 4
    |
    20天前
    |
    XML Java 应用服务中间件
    一步到位!若依框架升级 Tomcat 最新版完整教程
    若依(RuoYi)框架升级 Tomcat 到最新版本的完整流程,我会从升级前提、核心步骤、版本适配、避坑指南四个维度拆解,覆盖单体版(RuoYi-Vue)和微服务版(RuoYi-Cloud),确保升级后系统稳定运行
    323 3
    |
    19天前
    |
    存储 NoSQL 前端开发
    告别踩坑!若依图片验证码实现与改造指南
    若依(RuoYi)框架中图片验证码的完整实现逻辑、核心代码和定制化方法,我会从实现原理、核心代码拆解、关键配置、定制化改造四个维度讲解,覆盖验证码生成、存储、校验全流程,让你既能理解原理,也能按需修改验证码样式 / 规则。
    159 10
    |
    1月前
    |
    机器学习/深度学习 存储 弹性计算
    阿里云服务器价格表【2026最新】一年、1个月和1小时收费标准(透明公开)
    2026年阿里云服务器最新价格表:轻量应用服务器低至38元/年,ECS年付99元起,GPU服务器月付1681元起;支持中国大陆及海外多地域部署,提供年付、月付、按小时计费三种模式,并可灵活选配带宽与系统盘。

    热门文章

    最新文章