JDK8升级到JDK17带来的springboot工程升级指南

该文章已生成可运行项目,

JDK 17 是继 JDK 8 后的首个 LTS 版本,越来越多的第三方依赖包只支持JDK17,所以使用JDK17作为开发环境势在必行。

直接影响

Java EE 移交 Eclipse 基金会后更名为 Jakarta EE,包名从 javax.* 改为 jakarta.*。
仅此一项就要改动大量代码。

核心框架版本升级

名称旧版本号新版本号
spring-boot2.3.12.RELEASE3.3.9
spring-cloud2.2.9.RELEASE2023.0.1.2

spring-cloud不要使用2023.0.3.2版本,会出现一些意想不到的错误。

工具库升级

名称旧版本号新版本号说明
commons-lang33.103.17.0Apache Commons 工具库兼容 JDK17
commons-io2.22.18.0修复安全漏洞并兼容新 JDK
commons-codec1.111.18.0支持新哈希算法
hutool-all5.8.255.8.35轻微升级,修复已知问题

日志组件升级

名称旧版本号新版本号说明
logback-classic1.2.31.5.16Logback 1.3+ 需 JDK 11+,兼容 JDK17
log4j-to-slf4j2.13.32.24.3修复 Log4j2 高危漏洞(如CVE-2021-44832)
jul-to-slf4j1.7.302.0.17SLF4J 2.x 适配 JDK17

数据与持久化层升级

  1. 数据库驱动
    名称旧版本号新版本号说明
    mysql-connector-java8.0.309.2.0官方支持 JDK 17
    com.oracle.ojdbc611.2.0.3com.oracle.database.jdbc:ojdbc11:23.7.0.25.01替换为 OracleJDBC 11+,支持 JDK 17
    com.dameng.DmJdbcDriver188.1.3.1408.1.3.141达梦官方最新驱动,确认 JDK 17 兼容性
  2. 连接池
    名称旧版本号新版本号说明
    com.alibaba.druid1.2.221.2.24修复 JDK 17 兼容性问题
    commons-pool22.8.12.12.1支持新特性
  3. MyBatis
    名称旧版本号新版本号说明
    mybatis-spring-boot-starter2.1.03.0.4适配 Spring Boot3.x
    mybatis-generator-core1.3.31.4.2修复生成器兼容性
    mapper-spring-boot-starter1.2.45.0.1MyBatis 通用 Mapper 最新版

JSON 与序列化

名称旧版本号新版本号说明
fastjson1.2.83弃用→改用com.alibaba.fastjson2:2.0.56FastJSON 1.x 存在安全漏洞且 JDK17 兼容性差
truelicense-core1.334.0.0TrueLicense 4.x 支持 JDK17

XML 与 JAXB

名称旧版本号新版本号说明
jaxb-api2.3.1弃用→改用jakarta.xml.bind-api:4.0.2JDK 17 移除了 JAXB,需显式依赖
jaxb-impl2.3.14.0.5JAXB 运行时实现
jaxb-runtime2.3.14.0.5替代旧版 JAXB
javax.activation1.1.1弃用→改用jakarta.activation.activation-api:2.1.3jakarta.persistence.persistence-api:3.2.0Jakarta Activation 2.x

网络与协议

名称旧版本号新版本号说明
io.netty4.1.99.Final4.1.119.FinalNetty 4.1.100+ 支持 JDK17
netty-codec-http4.1.65.Final4.1.119.Final与 Netty 主版本同步

其他关键依赖

名称旧版本号新版本号说明
oshi-core6.3.26.7.0支持新硬件信息获取
bcprov-jdk18on1.771.80支持 JDK 17
lombok-mapstruct-binding0.2.00.2.0若与 Lombok 1.18.30+ 配合使用无需升级
mapstruct1.5.5.Final1.6.3兼容 JDK 17

升级步骤建议

  1. 环境准备
    • 安装 JDK 17 并配置环境变量。
    • 更新 IDE 的编译目标和语言级别为JDK 17。
  2. 依赖升级
    • 按上述表格逐步升级依赖版本。
    • 优先升级 SpringBoot、Spring Cloud 和日志组件。
  3. 代码适配
    • 替换 javaxjakarta 包名。
    • 修复因依赖升级导致的API 变更(如 MyBatis、Jackson)。
  4. 测试与验证
    • 运行单元测试和集成测试。
    • 使用-XX:+ShowCodeDetailsInExceptionMessages 调试启动错误。
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值