领导让你从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文件的版本
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<java.version>21</java.version>
</properties>
2、升级springboot3.X
升级springboot3.X的依赖管理
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.15</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
3、切换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-依赖配置
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${HikariCP.version}</version>
</dependency>
YML配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai
username: root
password: root
hikari:
# 最小空闲连接
minimum-idle: 5
# 最大连接池数量(生产建议10-30,根据DB配置调整)
maximum-pool-size: 20
# 从池获取连接等待超时 毫秒
connection-timeout: 30000
# 连接空闲多久释放 毫秒(小于mysql wait_timeout,mysql默认8小时,这里设300000=5分钟)
idle-timeout: 300000
# 连接生命周期,强制回收,避免无效长连接
max-lifetime: 1800000
# 测试连接有效性的SQL
connection-test-query: SELECT 1
# 池名称,日志区分
pool-name: HikariPool-DB
4、lombok注解版本切换为1.18.30
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
5、fastjson更改成fastjson2
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.48</version>
</dependency>
代码更改常见问题
fastjson语法
import com.alibaba.fastjson.JSONObject
fastjson2语法
import com.alibaba.fastjson2.JSONObject
fastjson语法
JSONObject.parseArray()
fastjson2语法
JSON.parseArray()
6、httpclient4更改成httpclient5
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.6.1</version>
</dependency>
代码更改常见问题
4.x语法
import org.apache.http.
5.x语法
import org.apache.hc.client5.http.
4.x语法
builder.setRetryHandler(new DefaultHttpRequestRetryHandler(3, true))
5.x语法
builder.setRetryStrategy(new DefaultHttpRequestRetryStrategy(3, TimeValue.ofSeconds(1)));
4.x语法
RequestConfig.custom()
.setConnectTimeout(5000)
.setSocketTimeout(10000)
.setConnectionRequestTimeout(3000)
.build();
5.x语法
import org.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等等。
更多推荐

所有评论(0)