领导让你从springboot2.X升级到springboot3.X 这篇文章就够了

发布时间:2026/6/25 23:38:55
领导让你从springboot2.X升级到springboot3.X 这篇文章就够了 这篇文章主要是讲解springboot3.X的升级思路和常见问题的解决方法,包含但不限于: 1、升级springboot3.X的依赖管理2、升级springboot3.X的配置文件3、升级springboot3.X的代码。其中也涉及到一些依赖版本的替换和配置信息更改方法。1、切换JDK版本为17及以上官网下载地址https://www.oracle.com/java/technologies/downloads/#java21配置IDEA的JDk版本在IDEA中打开项目点击File - Settings - Project Structure - Project - JDK选择你下载的JDK版本。配置pom文件的版本propertiesmaven.compiler.source21/maven.compiler.sourcemaven.compiler.target21/maven.compiler.targetjava.version21/java.version/properties2、升级springboot3.X升级springboot3.X的依赖管理parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.5.15/versionrelativePath/!-- lookup parent from repository --/parent3、切换Maven版本为3.9.1及以上官网下载地址https://maven.apache.org/download.cgi配置IDEA的Maven版本在IDEA中打开项目点击File - Settings - Project Structure - Project - Maven选择你下载的Maven版本。4、切换Mysql版本为8.0及以上官网下载地址https://dev.mysql.com/downloads/mysql/切换Druid数据源为HikariCP-依赖配置dependencygroupIdcom.zaxxer/groupIdartifactIdHikariCP/artifactIdversion${HikariCP.version}/version/dependencyYML配置spring:datasource:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/test?characterEncodingutf-8autoReconnecttrueserverTimezoneAsia/Shanghaiusername:rootpassword:roothikari:# 最小空闲连接minimum-idle:5# 最大连接池数量生产建议10-30根据DB配置调整maximum-pool-size:20# 从池获取连接等待超时 毫秒connection-timeout:30000# 连接空闲多久释放 毫秒小于mysql wait_timeoutmysql默认8小时这里设3000005分钟idle-timeout:300000# 连接生命周期强制回收避免无效长连接max-lifetime:1800000# 测试连接有效性的SQLconnection-test-query:SELECT 1# 池名称日志区分pool-name:HikariPool-DB4、lombok注解版本切换为1.18.30dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.30/versionscopeprovided/scope/dependency5、fastjson更改成fastjson2dependencygroupIdcom.alibaba.fastjson2/groupIdartifactIdfastjson2/artifactIdversion2.0.48/version/dependency代码更改常见问题fastjson语法importcom.alibaba.fastjson.JSONObjectfastjson2语法importcom.alibaba.fastjson2.JSONObjectfastjson语法JSONObject.parseArray()fastjson2语法JSON.parseArray()6、httpclient4更改成httpclient5dependencygroupIdorg.apache.httpcomponents.client5/groupIdartifactIdhttpclient5/artifactIdversion5.6.1/version/dependency代码更改常见问题4.x语法importorg.apache.http.5.x语法importorg.apache.hc.client5.http.4.x语法 builder.setRetryHandler(newDefaultHttpRequestRetryHandler(3,true))5.x语法 builder.setRetryStrategy(newDefaultHttpRequestRetryStrategy(3,TimeValue.ofSeconds(1)));4.x语法RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(10000).setConnectionRequestTimeout(3000).build();5.x语法importorg.apache.hc.core5.util.Timeout;RequestConfig.custom().setConnectTimeout(Timeout.ofMilliseconds(5000))// setSocketTimeout 废弃 → setResponseTimeout.setResponseTimeout(Timeout.ofMilliseconds(10000)).setConnectionRequestTimeout(Timeout.ofMilliseconds(3000)).build();7、其他常见切换比如swagger切换内置的openapi规范hystrix切换为内置的Resilience4j等等。