SpringBoot2升级到SpringBoot31.Java环境变化2.第三方库版本升级1.SpringBoot2.Mybatis & Mybatis Plus4.druid5.swagger6.spring-cloud(Alibaba)7.nacos8.feign9.redis
Java8到Java17的语言特性变化
从 JDK 11 开始,Java EE 从 Oracle 转移到了 Eclipse 基金会,并改名为 Jakarta EE,因此相关的 API 也相应地进行了迁移和重命名。具体替换如下:
javax.validation替换为jakarta.validation
javax.servlet替换为jakarta.servlet
调整后
org.springframework.boot spring-boot-starter-parent 3.0.5 pom import
SpringBoot2.6.X默认不允许循环依赖,所以若是2.6.X以下的SpringBoot版本升级,需要允许循环依赖。
spring.main.all-circular-references: true
调整后
org.mybatis.spring.boot mybatis-spring-boot-starter 3.0.3 tk.mybatis mapper 4.2.3 com.baomidou mybatis-plus-spring-boot3-starter 3.5.5 com.baomidou mybatis-plus-annotation 3.5.5
MapperScan注解包路径调整,@org.mybatis.spring.annotation.MapperScan调整为@tk.mybatis.spring.annotation.MapperScan。
原依赖
com.alibaba druid-spring-boot-starter 1.1.10
springboot3.x版本,这里的druid数据源必须是1.2.19以上
com.alibaba druid-spring-boot-3-starter 1.2.21
io.springfox springfox-boot-starter 3.0.0 com.github.xiaoymin knife4j-spring-boot-starter 3.0.3 com.github.xiaoymin swagger-bootstrap-ui 1.8.5
调整后
org.springframework.cloud spring-cloud-dependencies 2022.0.5 pom import com.alibaba.cloud spring-cloud-alibaba-dependencies 2022.0.0.0-RC2 pom import
SpringCloud是一套全家桶的微服务解决框架,旨在解决微服务架构中遇到的各种问题。它继承了Spring Cloud Netflix的一些核心模块,如Eureka、Hystrix等,但这些组件逐渐被SpringCloud Alibaba的新技术所替代。12
SpringCloudAlibaba是对SpringCloud 2.x和1.x的扩展组件功能。它继承了Spring Cloud Netflix的一些核心模块,但设计和实现上可能有所不同。
另外,springcloud会自动检测版本兼容,springboot3.2.X需要对应2023.X aka Leyton以上的cloud版本,这里我们关闭兼容校验,需在application.yaml
配置:
cloud.compatibility-verifier.enabled: false
调整后
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery
SpringBoot3应用接入nacos做配置管理,目前可以能通过springcloud alibaba进行较为便捷的接入。application.yaml
配置如下:
spring: application: name: yourSystem cloud: nacos: discovery: server-addr: 127.0.0.1:8848 service: ${spring.application.name} username: nacos password: nacos config: namespace: base group: yourGroup enable-remote-sync-config: true #启用远程同步配置 #refresh-enabled: true #用来开启、关闭动态刷新 config-retry-time: 600 #获取配置项失败的重试时间 config-long-poll-timeout: 60000 #长轮询超时时间 max-retry: 10 #限制重试次数
调整后
org.springframework.cloud spring-cloud-starter-openfeign
调整后
org.redisson redisson-spring-boot-starter 3.23.5