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

 

你想要将若依(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>
(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>
(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>
4)替换不兼容依赖
<!-- 原 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>

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

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

2. 修改配置文件

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

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

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
(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;

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

// 原导入 import javax.servlet.http.HttpServletRequest; // 替换为 import jakarta.servlet.http.HttpServletRequest;
2)调整 Spring Security 配置(关键)

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

三、测试验证

总结

升级后的源码下载:

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