news 2026/10/8 15:32:57

SpringBoot 官宣停止维护 3.2.x~3.4.x!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot 官宣停止维护 3.2.x~3.4.x!

大家好,我是 Guide!技术的迭代速度有时候真的快到让人窒息。

就在前阵子,Spring Boot 4.0正式发布,3.2.x、3.3.x 和 3.4.x 这些 2024 年发布的版本官方已经不在维护了,也就是不再提供免费的安全更新和错误修复。

下图来源于 SpringBoot 官方文档:https://spring.io/projects/spring-boot#support。

其实影响也不大,很多老项目目前还是 2.x 版本,甚至还有停留在 1.x 版本的。

对于公司项目,如果能稳定运行,就不必要强行去升级新版本。你升级了,老板看不到效果,还容易出现问题,一出现问题说不定就是你背锅。

不过,对于新项目和个人项目来说,还是应该尽量使用相对较新且稳定的版本。

InterviewGuide (基于 Spring Boot 4.0 + Java 21 + Spring AI 开发的 AI 简历分析和模拟面试系统)这个项目我当时图省事复制了上一个项目的部分依赖文件,导致 SpringBoot 版本是 3.3,给自己找了一个麻烦!

有不少朋友反馈建议将其升级为 4.0 版本,于是我昨天就把这件事做了!

这一路踩了不少坑,尤其是 Jackson 3 的包名大改,简直是“史诗级”的 Breaking Change。今天就把这份穿透式升级指南分享给大家,建议收藏备用!

具体的更新内容可以查看这个 Commit:https://github.com/Snailclimb/interview-guide/commit/f7bb05980b725c8658f93a4c511bf4b2ec616b82。

为什么要升级?

Spring Boot 4.0.0 基于 Spring Framework 7.0,全面支持 Java 25(含虚拟线程优化)。核心新特性包括:HTTP Service Clients 简化远程调用;原生 API 版本管理;全面采用 JSpecify 空安全体系(默认非空,编译期防 NPE);关键依赖升级至 Jackson 3.0、Tomcat 11、Hibernate 7.1 等;模块化设计改进;化支持 Gradle 9;Redis 静态主从配置;移除 Undertow。

我专门分享过一篇文章介绍这些新特性:Spring Boot 4.0 正式发布,人已麻。。。(确实已经麻了)。

版本变更总览

在这里提个醒,升级千万别“跳级”。官方建议的升级路径:3.3/3.4 → 3.5 → 4.0,这条路径能避免 90% 的坑。

组件升级前升级后
Spring Boot3.3.64.0.1
Spring Framework6.x7.x
Spring AI1.1.22.0.0-M1
Redisson3.24.34.0.0
Gradle8.88.14
Hibernate6.x7.2.0.Final
Tomcat10.x11.0.15
Jackson2.x3.x
iText7.2.58.0.5
MapStruct1.5.5.Final1.6.3

升级步骤详解

Step 1: 升级 Gradle

Spring Boot 4.0 要求 Gradle 8.14 或更高版本。首先需要升级 Gradle Wrapper:

# 临时使用旧版本 Spring Boot 执行 wrapper 升级命令./gradlew wrapper --gradle-version=8.14

修改gradle/wrapper/gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip

Step 2: 更新依赖版本

修改gradle/libs.versions.toml:

[versions] spring-boot = "4.0.1" spring-ai = "2.0.0-M1" redisson = "4.0.0" mapstruct = "1.6.3" aws-sdk = "2.29.51" itext = "8.0.5" lombok = "1.18.36" junit-jupiter = "5.12.0" [plugins] spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" } spring-dependency-management = { id = "io.spring.dependency-management", version = "1.1.7" }

libs.versions.toml是 Gradle 7.0 引入并从 7.4 版本开始正式推荐的“版本目录”(Version Catalog)文件。它的核心作用是集中管理项目中所有的依赖库及其版本号。

Step 3: 模块化重构 (Starter 变更)

Spring Boot 4.0 采用了更细粒度的模块化设计,需要更新 starter 依赖:

// 升级前implementation'org.springframework.boot:spring-boot-starter-web'// 升级后implementation'org.springframework.boot:spring-boot-starter-webmvc'

完整的build.gradle依赖变更:

dependencies{// Spring Boot Starters (Boot 4.0 modular design)implementation'org.springframework.boot:spring-boot-starter-webmvc'implementation'org.springframework.boot:spring-boot-starter-validation'implementation'org.springframework.boot:spring-boot-starter-data-jpa'// Spring AI 2.0implementation"org.springframework.ai:spring-ai-starter-model-openai:${libs.versions.spring.ai.get()}"implementation"org.springframework.ai:spring-ai-starter-vector-store-pgvector:${libs.versions.spring.ai.get()}"// Redisson 4.0implementation"org.redisson:redisson-spring-boot-starter:${libs.versions.redisson.get()}"// iText 8implementation"com.itextpdf:itext-core:${libs.versions.itext.get()}"implementation"com.itextpdf:font-asian:${libs.versions.itext.get()}"}

Step 4: 史上最坑的 Jackson 3 迁移

这是本次升级最痛苦的部分。Jackson 3 将包名从com.fasterxml.jackson全面改为了tools.jackson。这意味着你项目中所有的ObjectMapper、JsonNode导入都失效了。

需要修改的导入语句:

升级前升级后
com.fasterxml.jackson.databind.ObjectMappertools.jackson.databind.ObjectMapper
com.fasterxml.jackson.core.type.TypeReferencetools.jackson.core.type.TypeReference
com.fasterxml.jackson.core.JsonProcessingExceptiontools.jackson.core.JacksonException

示例代码修改:

// 升级前importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.core.type.TypeReference;importcom.fasterxml.jackson.databind.ObjectMapper;try{Stringjson=objectMapper.writeValueAsString(data);}catch(JsonProcessingExceptione){// 处理异常}// 升级后importtools.jackson.core.JacksonException;importtools.jackson.core.type.TypeReference;importtools.jackson.databind.ObjectMapper;try{Stringjson=objectMapper.writeValueAsString(data);}catch(JacksonExceptione){// 处理异常}

我们需要在PdfExportService、RedisService等 7 个核心业务类中,利用 IDE 的全局替换功能,将com.fasterxml.jackson统一修正为tools.jackson。

Step 5: Redisson 4.0 API 迁移

Redisson 4.0 对部分类进行了包重组,StreamMessageId等 Stream 相关类移至新包:

// 升级前importorg.redisson.api.StreamMessageId;// 升级后importorg.redisson.api.stream.StreamMessageId;

这个还好点,只涉及到 3 个类:

  • infrastructure/redis/RedisService.java
  • modules/resume/listener/AnalyzeStreamConsumer.java
  • modules/knowledgebase/listener/VectorizeStreamConsumer.java

验证升级结果

升级完成后,运行以下命令验证:

# 编译项目./gradlew :app:compileJava# 运行测试./gradlew :app:build# 启动应用./gradlew :app:bootRun

成功启动后,日志应显示:

. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v4.0.1) ... Tomcat initialized with port 8080 (http) ... Starting Servlet engine: [Apache Tomcat/11.0.15] ... Redisson 4.0.0 ... HHH000001: Hibernate ORM core version 7.2.0.Final

参考资料

  • Spring Boot 4.0 发布公告
  • Spring Boot 4.0 Migration Guide
  • Spring AI 2.0.0-M1 发布公告
  • Redisson Changelog
  • Jackson 3 Release Notes

总结

本次 Spring Boot 4.0 的升级主要涉及以下几个方面:

  1. 构建工具升级:Gradle 8.14+
  2. 模块化变更:starter-web→starter-webmvc
  3. Jackson 3 迁移:包名从com.fasterxml.jackson改为tools.jackson
  4. 第三方库兼容:Redisson、Spring AI 等需要升级到对应的兼容版本

遵循官方推荐的 3.3 → 3.5 → 4.0 升级路径,可以更平滑地完成迁移。升级过程中遇到的大多数问题都与包名变更有关,通过全局搜索替换即可解决。

InterviewGuide 传送门:

  • Github 地址:https://github.com/Snailclimb/interview-guide
  • Gitee 地址:https://gitee.com/SnailClimb/interview-guide
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 5:52:24

GLM-4.6V-Flash-WEB如何省钱?弹性GPU部署方案详解

GLM-4.6V-Flash-WEB如何省钱?弹性GPU部署方案详解 智谱最新开源,视觉大模型。 1. 背景与痛点:视觉大模型的高成本挑战 随着多模态AI技术的快速发展,视觉语言模型(VLM)在图像理解、图文生成、视觉问答等场景…

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

手把手教学:[特殊字符] AI 印象派艺术工坊从安装到出图全流程

手把手教学:🎨 AI 印象派艺术工坊从安装到出图全流程 你是否曾幻想过,只需上传一张普通照片,就能瞬间生成达芬奇素描、梵高油画、莫奈水彩等艺术风格的画作?而这一切无需深度学习模型、不依赖网络下载、没有黑盒推理—…

作者头像 李华
网站建设 2026/10/6 3:06:41

避坑指南:用纯算法镜像做艺术风格迁移,这些技巧要知道

避坑指南:用纯算法镜像做艺术风格迁移,这些技巧要知道 关键词:OpenCV、非真实感渲染、图像处理、艺术风格迁移、计算摄影学 摘要:本文围绕「🎨 AI 印象派艺术工坊」这一基于 OpenCV 算法的纯代码图像风格迁移镜像&…

作者头像 李华
网站建设 2026/10/4 13:36:09

ESLyric-LyricsSource歌词增强工具配置指南

ESLyric-LyricsSource歌词增强工具配置指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource ESLyric-LyricsSource是一款专为音乐播放器设计的歌词增强工具…

作者头像 李华
网站建设 2026/10/4 10:07:08

HunyuanVideo-Foley多对象处理:同时识别多个发声体的技术实现

HunyuanVideo-Foley多对象处理:同时识别多个发声体的技术实现 1. 引言 1.1 技术背景与行业痛点 在影视、短视频和动画制作中,音效是提升沉浸感的关键环节。传统音效制作依赖人工逐帧匹配声音,耗时耗力且成本高昂。随着AI技术的发展&#x…

作者头像 李华
网站建设 2026/10/5 13:12:25

炉石传说智能助手高效自动化配置完全指南

炉石传说智能助手高效自动化配置完全指南 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本)(2024.01.25停更至国服回归) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 想要在炉石…

作者头像 李华