坑爹的發版流水線,管天管地,springboot2過了維護期,就催著我們升級。
導致必須上jdk17
記錄一下升級需要處理的事情
- 先升級springboot和cloud,這里定下基調,其他的才好跟著升級
https://spring.io/projects/spring-boot#learn 看ga版本
https://spring.io/projects/spring-cloud#learn 這是cloud的,
干脆來個狠的,springcloud升到當前最新
https://docs.spring.io/spring-cloud-release/reference/index.html 有對應的springboot版本
Release Train Version: 2023.0.2
Supported Boot Version: 3.2.6
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>3.2.6</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2023.0.2</version><type>pom</type><scope>import</scope></dependency>
springboot的一些要求:
https://docs.spring.io/spring-boot/docs/3.2.6/reference/html/getting-started.html#getting-started
Build Tool | version |
---|---|
Maven | 3.6.3 or later |
Gradle | 7.x (7.5 or later) and 8.x |
容器要求
Servlet Containers
Spring Boot supports the following embedded servlet containers:
Name | Servlet Version |
---|---|
Tomcat 10.1 | 6.0 |
Jetty 12.0 | 6.0 |
Undertow 2.3 | 6.0 |
- mybitis-plus 要升級,注意配置可能要調整,分頁和@version樂觀鎖可能需要調整,
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId></dependency>
- mysql的jdbc換了
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency>
- 連接池
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-3-starter -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.20</version>
</dependency>
-
Swagger 升級
-
redis配置變化了,多了一個層級
##### redis配置
spring.data.redis.host=192.168.50.101
spring.data.redis.port=6379
spring.data.redis.database=11
spring.data.redis.password=haoxun
spring.data.redis.timeout=5000
spring.data.redis.lettuce.pool.enabled= true
# 連接池最大連接數(使用負值表示沒有限制)
spring.data.redis.lettuce.pool.max-active=5
# 連接池中的最大空閑連接
spring.data.redis.lettuce.pool.max-idle=5
# 連接池中的最小空閑連接
spring.data.redis.lettuce.pool.min-idle=1
# 連接池最大阻塞等待時間(使用負值表示沒有限制)
spring.data.redis.lettuce.pool.max-wait=5000
spring.data.redis.lettuce.pool.time-between-eviction-runs=1000
- servlet-api 升級
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency>變成了<dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>6.0.0</version><scope>provided</scope></dependency>
有不少javax的import ,需要換包路徑,變成了jakarta
-
Hystrix和Ribbon已過時
由于Hystrix和Ribbon已停止升級,Hystrix被circuit-breaker(resilience4j或sentinel)取代,
Ribbon被load-balancer取代。maven類庫引用變為: -
內置聲明式HTTP客戶端