Spring Boot 3 升级实战指南
📌 摘要: 本文记录了我们博客系统后端从 Spring Boot 2.x 升级到 Spring Boot 3.5.15 的完整过程,包括遇到的兼容性问题、解决方案以及性能优化心得。适合正在考虑升级的团队参考。
一、为什么要升级?
Spring Boot 2.x 已经在 2023 年 11 月结束了官方支持,继续使用意味着无法获得安全补丁和新特性。升级到 Spring Boot 3 是必然选择。
Spring Boot 3 带来了诸多改进:
- 基于 Java 17,支持最新语言特性
- Jakarta EE 替代 Java EE,命名空间变更
- 原生支持 GraalVM,启动更快、内存占用更低
- 更好的响应式编程支持
二、升级前的准备工作
在正式升级前,我们做了充分的准备工作:
2.1 备份现有代码
创建升级分支,确保可以随时回退:
git checkout -b feature/spring-boot-3-upgrade
# 备份当前配置
cp -r src/main/resources src/main/resources.backup
2.2 检查依赖兼容性
使用 Spring Boot 提供的依赖检查工具:
mvn versions:display-dependency-updates
三、核心升级步骤
升级过程分为以下几个关键步骤:
3.1 升级 Java 版本到 17
修改 pom.xml 中的 Java 版本:
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
3.2 替换 Java EE 为 Jakarta EE
这是最繁琐的一步,需要全局替换 import 语句:
find src -name "*.java" -exec sed -i '' 's/javax\./jakarta./g' {} +
# 主要变更:
# javax.servlet → jakarta.servlet
# javax.persistence → jakarta.persistence
# javax.validation → jakarta.validation