java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Springboot JDK版本升级

Springboot项目由JDK8升级至JDK17详细教程

作者:笑小枫

这篇文章主要为大家详细介绍了Springboot项目如何由JDK8升级至JDK17,本文为大家整理了全过程的详细步骤,有需要的小伙伴可以参考一下

1. 前言

最近一直想把我的开源项目maple-boot升级到jdk17版本,然后接入Spring AI。拖延症犯了一直拖拖拖,最近时间空闲较多,开始陆续着手升级。

整个升级过程 计划分为3步。

本文主要记录step1将项目升级过程中牵扯到依赖变动升级,当然项目用到的依赖并不算多,项目之外的这里不做记录。

2. 准备环境

原项目版本:Jdk8 + springboot 2.7.12

升级后版本:Jdk17 + springboot 3.3.9

这里新建一个maple-boot-17的项目,然后将maple-boot下[base-manage]分支的代码原封不动的复制进来。

接下来开始修改。

3. 版本升级

3.1 基础依赖升级

1.首先把项目环境切换到Jdk17上

2.父级pom文件中spring-boot-starter-parent版本升级到3.3.9

3.项目配置中的java.version由8升级到17

4.maven编译相关maven.compiler.sourcemaven.compiler.target由8升到17

5.由于在jdk17中移除了javax的部分包,所以很多javax.xxx都需要修改jakarta.xxx

这里主要包含:

(1) javax.servlet

(2) javax.annotation

其它javax.net,javax.sql等则继续保留着。

6.lombok版本由1.16.18 升级 1.18.30

3.2 相关组件升级

1.redis相关

​ yml文件配置由spring.redis 变为spring.data.redis,多了一级data

2.mybatis plus相关

3.对象转化工具dozer版本升级,由6.2.0升级至7.0.0

4.httpclient版本升级,升级至4.5.14

5.接口文档knife4j升级

com.github.xiaoymin:knife4j-spring-boot-starter:2.0.7变更为com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter:4.0.0Knife4jConfiguration配置类变更

package com.maple.rest.config;

import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.annotations.servers.Server;
import org.springframework.context.annotation.Configuration;

/**
 * @author 笑小枫-https://www.xiaoxiaofeng.com
 * @date 2022/6/28
 */
@Configuration
@OpenAPIDefinition(
        info = @Info(title = "笑小枫管理平台接口",
                description = "管理平台 API 文档",
                version = "1.0"),
        servers = @Server(url = "https://www.xiaoxiaofeng.site/api/")
)
public class Knife4jConfiguration {

}

注解变更

变更前变更后
@Api(tags = “body参数”)@Tag(name = “body参数”)
@ApiOperation(“普通body请求”)@Operation(summary = “普通body请求”)
@ApiModel(value = “对象描述”)@Schema(description = “对象描述”)
@ApiModelProperty(“参数名称”)@Schema(description = “参数名称”)

更多的变动可以参考官网,这里暂时没有做进一步深究

4. 功能测试

大体试了下,功能都还健在,后续整理生成工具时,会陆续测试功能细节。

5. 升级总结

本次项目版本依赖升级大致如下,可能有一些没有记录到。

依赖升级前升级后
JDK817
springboot2.7.123.3.9
mybatis plus3.5.23.5.9
dynamic datasource3.5.24.0.0
lombok1.16.181.18.30
nacos0.2.102.2.3
knife4j2.0.74.0.0
httpclient4.5.134.5.14
dozer6.2.07.0.0

6. 注意事项

1.JDK版本与Spring Boot版本对应

Spring Boot不同版本支持的JDK版本如下:

Spring Boot版本支持的JDK版本
Spring Boot 2.1.xJDK 8、JDK 11
Spring Boot 2.2.xJDK 8、JDK 11
Spring Boot 2.3.xJDK 8、JDK 11
Spring Boot 2.4.xJDK 8、JDK 11
Spring Boot 2.5.xJDK 8、JDK 11
Spring Boot 2.6.xJDK 8、JDK 11
Spring Boot 2.7.xJDK 11、JDK 17
Spring Boot 3.0.xJDK 17(基于Spring Framework 6)

2.Maven版本与Spring Boot版本对应

Maven作为构建工具,与Spring Boot的兼容性如下:

Spring Boot版本推荐的Maven版本
Spring Boot 2.1.xMaven 3.5.x
Spring Boot 2.2.xMaven 3.5.x、3.6.x
Spring Boot 2.3.xMaven 3.6.x
Spring Boot 2.4.xMaven 3.6.x
Spring Boot 2.5.xMaven 3.6.x
Spring Boot 2.6.xMaven 3.6.x
Spring Boot 2.7.xMaven 3.6.x、3.8.x
Spring Boot 3.0.xMaven 3.8.x

3.我用的idea 2021.3款的,不支持过高的maven版本,我这里使用的是maven 3.8.1。条件允许建议可以换更高版本的idea,感觉2024版的使用起来也更丝滑…

7.小结

升级过程中,程序可能会出现各种各式报错,牵扯到相关依赖版本变更需要调整。

到此这篇关于Springboot项目由JDK8升级至JDK17详细教程的文章就介绍到这了,更多相关Springboot JDK版本升级内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文