升级springboot3

坑爹的发版流水线,管天管地,springboot2过了维护期,就催着我们升级。

导致必须上jdk17

记录一下升级需要处理的事情

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>
  • 连接池

    <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客户端

相关推荐
风象南几秒前
SpringBoot配置属性热更新的轻量级实现
java·spring boot·后端
洛阳泰山1 分钟前
Spring Boot 整合 Nacos 实战教程:服务注册发现与配置中心详解
java·spring boot·后端·nacos
Y4090011 分钟前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记
YuTaoShao2 分钟前
【LeetCode 热题 100】994. 腐烂的橘子——BFS
java·linux·算法·leetcode·宽度优先
布朗克1682 分钟前
java常见的jvm内存分析工具
java·jvm·数据库
都叫我大帅哥1 小时前
深入浅出 Resilience4j:Java 微服务的“免疫系统”实战指南
java·spring cloud
Cao_Shixin攻城狮3 小时前
Flutter运行Android项目时显示java版本不兼容(Unsupported class file major version 65)的处理
android·java·flutter
Dcs6 小时前
还在用 Arrays.hashCode?Java 自己也能写出更快的版本!
java
fouryears_234178 小时前
Spring,Spring Boot 和 Spring MVC 的关系以及区别
java·spring boot·spring·mvc
阿葱(聪)8 小时前
java 在k8s中的部署流程
java·开发语言·docker·kubernetes