亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Springboot項目由JDK8升級至JDK17詳細教程

 更新時間:2025年06月11日 11:08:48   作者:笑小楓  
這篇文章主要為大家詳細介紹了Springboot項目如何由JDK8升級至JDK17,本文為大家整理了全過程的詳細步驟,有需要的小伙伴可以參考一下

1. 前言

最近一直想把我的開源項目maple-boot升級到jdk17版本,然后接入Spring AI。拖延癥犯了一直拖拖拖,最近時間空閑較多,開始陸續(xù)著手升級。

整個升級過程 計劃分為3步。

  • step1:先將項目升級到jdk17,使用正常
  • step2:生成代碼的模板類升級到Jdk17對應的版本
  • step3:功能陸續(xù)驗證

本文主要記錄step1將項目升級過程中牽扯到依賴變動升級,當然項目用到的依賴并不算多,項目之外的這里不做記錄。

2. 準備環(huán)境

原項目版本:Jdk8 + springboot 2.7.12

升級后版本:Jdk17 + springboot 3.3.9

這里新建一個maple-boot-17的項目,然后將maple-boot下[base-manage]分支的代碼原封不動的復制進來。

接下來開始修改。

3. 版本升級

3.1 基礎依賴升級

1.首先把項目環(huán)境切換到Jdk17上

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

3.項目配置中的java.version由8升級到17

4.maven編譯相關(guān)maven.compiler.source、maven.compiler.target由8升到17

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

這里主要包含:

(1) javax.servlet

(2) javax.annotation

其它javax.net,javax.sql等則繼續(xù)保留著。

6.lombok版本由1.16.18 升級 1.18.30

3.2 相關(guān)組件升級

1.redis相關(guān)

? yml文件配置由spring.redis 變?yōu)?code>spring.data.redis,多了一級data

2.mybatis plus相關(guān)

  • mybatis plus版本升級,由3.5.2升級到3.5.9,pom依賴artifactIdmybatis-plus-boot-starter變?yōu)?code>mybatis-plus-spring-boot3-starter
  • 分頁插件剝離,新增分頁依賴com.baomidou:mybatis-plus-jsqlparser
  • 多數(shù)據(jù)源依賴升級,由3.5.2升級為4.0.0,pom依賴artifactIddynamic-datasource-spring-boot-starter變?yōu)?code>dynamic-datasource-spring-boot3-starter
  • TODO:生成工具暫未調(diào)整,不確定是否有變化

3.對象轉(zhuǎn)化工具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參數(shù)”)@Tag(name = “body參數(shù)”)
@ApiOperation(“普通body請求”)@Operation(summary = “普通body請求”)
@ApiModel(value = “對象描述”)@Schema(description = “對象描述”)
@ApiModelProperty(“參數(shù)名稱”)@Schema(description = “參數(shù)名稱”)

更多的變動可以參考官網(wǎng),這里暫時沒有做進一步深究

4. 功能測試

大體試了下,功能都還健在,后續(xù)整理生成工具時,會陸續(xù)測試功能細節(jié)。

5. 升級總結(jié)

本次項目版本依賴升級大致如下,可能有一些沒有記錄到。

依賴升級前升級后
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作為構(gòu)建工具,與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.小結(jié)

升級過程中,程序可能會出現(xiàn)各種各式報錯,牽扯到相關(guān)依賴版本變更需要調(diào)整。

到此這篇關(guān)于Springboot項目由JDK8升級至JDK17詳細教程的文章就介紹到這了,更多相關(guān)Springboot JDK版本升級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java內(nèi)存模型詳解

    Java內(nèi)存模型詳解

    JMM全稱Java Memory Model, 中文翻譯Java內(nèi)存模型,一種符合內(nèi)存模型規(guī)范的,屏蔽了各種硬件和操作系統(tǒng)的訪問差異的,本詳細介紹了Java內(nèi)存模型,感興趣的同學可以參考一下
    2023-04-04
  • 使用webservice自定義注解處理參數(shù)加解密問題

    使用webservice自定義注解處理參數(shù)加解密問題

    這篇文章主要介紹了使用webservice自定義注解處理參數(shù)加解密問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中異常傳播的實現(xiàn)

    Java中異常傳播的實現(xiàn)

    在Java中,異常傳播是一個重要的概念,本文主要介紹了Java中異常傳播的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Spring MVC 基于URL的映射規(guī)則(注解版)

    Spring MVC 基于URL的映射規(guī)則(注解版)

    這篇文章主要介紹了Spring MVC 基于URL的映射規(guī)則(注解版) ,詳細的介紹了幾種方式,有興趣的可以了解一下
    2017-05-05
  • java?環(huán)境配置(2023年詳細教程)

    java?環(huán)境配置(2023年詳細教程)

    這篇文章首先為了完善我的知識體系,今后一些軟件的安裝教程也可能會用到想寫一個更加詳細的,因為這并不僅僅是寫給?IT?行業(yè)的,其它行業(yè)可能也需要配置java環(huán)境
    2023-06-06
  • Flask接口如何返回JSON格式數(shù)據(jù)自動解析

    Flask接口如何返回JSON格式數(shù)據(jù)自動解析

    這篇文章主要介紹了Flask接口如何返回JSON格式數(shù)據(jù)自動解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Java實現(xiàn)Html轉(zhuǎn)Pdf的方法

    Java實現(xiàn)Html轉(zhuǎn)Pdf的方法

    這篇文章主要介紹了Java實現(xiàn)Html轉(zhuǎn)Pdf的方法,實例分析了java基于ITextRenderer類操作頁面及系統(tǒng)自帶字體生成pdf文件的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • java?http請求設置代理Proxy的兩種常見方法

    java?http請求設置代理Proxy的兩種常見方法

    代理是一種常見的設計模式,其目的就是為其他對象提供一個代理以控制對某個對象的訪問,這篇文章主要給大家介紹了關(guān)于java?http請求設置代理Proxy的兩種常見方法,需要的朋友可以參考下
    2023-11-11
  • Java Retrofit源碼層深入分析

    Java Retrofit源碼層深入分析

    這篇文章主要介紹了Java Retrofit源碼層分析,Retrofit是一個RESTful的HTTP網(wǎng)絡請求框架的封裝,網(wǎng)絡請求的工作本質(zhì)上是OkHttp完成,而Retrofit僅負責網(wǎng)絡請求接口的封裝
    2023-01-01
  • Spring基于注解配置AOP詳解

    Spring基于注解配置AOP詳解

    這篇文章主要介紹了Spring基于注解配置AOP詳解,Spring 的 AOP 功能是基于 AspectJ 實現(xiàn)的,支持使用注解聲明式定義 AOP 切面,Spring 基于注解配置 AOP 需要啟用 AspectJ 自動代理功能,需要的朋友可以參考下
    2023-09-09

最新評論