将若依(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

    相关文章
    |
    1天前
    |
    人工智能 自然语言处理 JavaScript
    2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
    2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
    3310 13
    |
    13天前
    |
    人工智能 自然语言处理 监控
    OpenClaw skills重构量化交易逻辑:部署+AI全自动炒股指南(2026终极版)
    2026年,AI Agent领域最震撼的突破来自OpenClaw(原Clawdbot)——这个能自主规划、执行任务的智能体,用50美元启动资金创造了48小时滚雪球至2980美元的奇迹,收益率高达5860%。其核心逻辑堪称教科书级:每10分钟扫描Polymarket近千个预测市场,借助Claude API深度推理,交叉验证NOAA天气数据、体育伤病报告、加密货币链上情绪等多维度信息,捕捉8%以上的定价偏差,再通过凯利准则将单仓位严格控制在总资金6%以内,实现低风险高频套利。
    6692 60
    |
    8天前
    |
    存储 人工智能 负载均衡
    阿里云OpenClaw多Agent实战宝典:从极速部署到AI团队搭建,一个人=一支高效军团
    在AI自动化时代,单一Agent的“全能模式”早已无法满足复杂任务需求——记忆臃肿导致响应迟缓、上下文污染引发逻辑冲突、无关信息加载造成Token浪费,这些痛点让OpenClaw的潜力大打折扣。而多Agent架构的出现,彻底改变了这一现状:通过“单Gateway+多分身”模式,让一个Bot在不同场景下切换独立“大脑”,如同组建一支分工明确的AI团队,实现创意、写作、编码、数据分析等任务的高效协同。
    3106 27
    |
    30天前
    |
    人工智能 自然语言处理 Shell
    🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
    本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
    44671 157
    🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
    |
    4天前
    |
    人工智能 JavaScript API
    2026年Windows系统本地部署OpenClaw指南:附阿里云简易部署OpenClaw方案,零技术基础也能玩转AI助手
    在AI办公自动化全面普及的2026年,OpenClaw(原Clawdbot、Moltbot)凭借“自然语言指令操控、多任务自动化执行、多工具无缝集成”的核心优势,成为个人与轻量办公群体打造专属AI助手的首选。它彻底打破了传统AI“只会对话不会执行”的局限——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可灵活接入通义千问、OpenAI等云端API,或利用本地GPU运行模型,真正实现“聊天框里办大事”。
    1084 2
    |
    2天前
    |
    人工智能 JSON JavaScript
    手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
    手把手教你用 OpenClaw(v2026.2.22-2)+ 飞书,10分钟零代码搭建专属AI机器人!内置飞书插件,无需额外安装;支持Claude等主流模型,命令行一键配置。告别复杂开发,像聊同事一样自然对话。
    1126 5
    手把手教你用 OpenClaw + 飞书,打造专属 AI 机器人
    |
    7天前
    |
    人工智能 自然语言处理 安全
    2026年OpenClaw Skills安装指南:Top20必装清单+阿里云上部署实操(附代码命令)
    OpenClaw(原Clawdbot)的强大之处,不仅在于其开源免费的AI执行引擎核心,更在于其庞大的Skills生态——截至2026年2月,官方技能市场ClawHub已收录1700+各类技能插件,覆盖办公自动化、智能交互、生活服务等全场景。但对新手而言,面对海量技能往往无从下手,盲目安装不仅导致功能冗余,还可能引发权限冲突与安全风险。
    1617 9
    |
    2天前
    |
    人工智能 运维 安全
    OpenClaw极速部署:ZeroNews 远程管理OpenClaw Gateway Dashboard指南+常见错误解决
    OpenClaw作为高性能AI智能体网关平台,其Gateway Dashboard是管理模型调用、渠道集成、技能插件的核心操作界面,但默认仅支持本地局域网访问。官方推荐的Tailscale、VPN等远程访问方案在国内网络环境中体验不佳,而ZeroNews凭借轻量化部署、专属域名映射、多重安全防护的特性,成为适配国内网络的最优远程管理解决方案。
    1037 2

    热门文章

    最新文章