当前位置: 首页 > news >正文

springboot2.x升级springboot3.x

springboot2.x升级springboot3.x

  • 背景
    • 升级jdk版本为17以上
    • springboot版本修改
    • javax包更新
    • mybatis-plus升级
    • swagger升级springdoc
    • springdoc配置

背景

当前项目是springboot2.5.9版本的springboot+mybatis-plus项目,需要升级到springboot3.5.0项目。

升级jdk版本为17以上

Spring Boot 3.x 需 ​Java 17+​,检查并升级 JDK:

<properties><java.version>17</java.version>
</properties>

springboot版本修改

修改 pom.xml 中的父依赖版本:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.9</version><relativePath/> <!-- lookup parent from repository --></parent>

升级版本

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.0</version><relativePath/> <!-- lookup parent from repository --></parent>

javax包更新

全局替换 javax.* 为 jakarta.*(涉及 Servlet、JPA 等):

// 旧:import javax.servlet.HttpServletRequest;
// 新:import jakarta.servlet.HttpServletRequest;

在这里插入图片描述

mybatis-plus升级

 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.12</version></dependency><!--mybatis-plus分页插件使用必须依赖项--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-jsqlparser</artifactId><version>3.5.12</version></dependency>

这里面分页需要注意,必须引入新的依赖。

swagger升级springdoc

Spring 社区已明确推荐使用 ​springdoc-openapi​ 替代 springfox,因其原生支持 Jakarta EE 并与 Spring Boot 3.x 完全兼容

老版本的swagger

<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>

替换为新的swagger

 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.8.8</version></dependency>

springdoc配置

调整路径匹配策略

Spring Boot 3.x 默认使用 PathPatternParser,但 Swagger UI 需切换为传统 AntPathMatcher:
application.yml

spring:mvc:pathmatch:matching-strategy: ant_path_matcher

删除swaggerconfig配置类

新增springdoc配置类


@Configuration
@SecurityScheme(name = "Bearer Authentication",type = SecuritySchemeType.HTTP,bearerFormat = "JWT",scheme = "bearer"
)
public class SpringDocConfig {@Beanpublic OpenAPI customOpenApi() {return new OpenAPI().info(new Info().title("xxxAPI 文档").description("这是一个xxx系统的API文档。").version("1.0").contact(new Contact().name("开发团队").email("support@example.com").url("https://github.com/")).license(new License().name("MIT License").url("https://opensource.org/licenses/MIT")).termsOfService("http://example.com/terms/")).externalDocs(new ExternalDocumentation().description("更多文档").url("http://example.com/docs")).addSecurityItem(new SecurityRequirement().addList("Bearer Authentication"));}@Beanpublic GroupedOpenApi allApi() {return GroupedOpenApi.builder().group("所有接口").pathsToMatch("/**").packagesToScan("com.xxx.xxx.controller").build();}

spring-doc配置

springdoc:api-docs:enabled: truepath: /v3/api-docsswagger-ui:path: /swagger-ui.htmlurl: /v3/api-docsdisable-swagger-default-url: falsetags-sorter: alphaoperations-sorter: alphapackages-to-scan: com.xxx.controllerpaths-to-match: /**show-actuator: falsedefault-produces-media-type: application/jsondefault-consumes-media-type: application/json

其他修改:

依次将swagger的注解更改为springdoc的注解
主要使用springdoc的@Schema注解对类和属性进行标注:@Schema(description = "xxx对象")
http://www.dtcms.com/a/239313.html

相关文章:

  • 10万QPS高并发请求,如何防止重复下单
  • 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
  • SeaweedFS S3 Spring Boot Starter
  • 监控脚本源码
  • 【阿里巴巴 x 浙江大学】信息与交互设计 - 交互设计概述
  • 算数运算符
  • 基于Vue3.0的在线工具网站
  • Day16
  • C盘的“下载”修改位置时出错了,怎么还原
  • three.js 零基础到入门
  • 软件更新机制的测试要点与稳定性提升
  • python中使用LibreHardwareMonitorLib.dll获取电脑硬件信息~~【不用同步打开exe文件】
  • 【LangChain4J】LangChain4J 第三弹:多模态与文生图的实现
  • 删除有序数组中的重复项
  • CZGL.SystemInfo:跨平台的系统信息获取库
  • Deep Research实践
  • 程序代码篇---随机数与随机数种子
  • 【Java学习笔记】Arrays类
  • C++17 和 C++20 中的新容器与工具:std::optional、std::variant 和 std::span
  • 大语言模型(LLM)面试问题集
  • 实验一:数据选择器实验
  • C++核心编程_继承同名静态成员处理方式
  • 深入理解链接与加载:从静态库到动态库的全流程解析
  • 【第八篇】 SpringBoot高级配置(配置篇)
  • 【SpringBoot自动化部署方法】
  • 图像超分辨率
  • 深度学习模块缝合
  • 线程与线程池
  • Pandas-如何正确将两张数据表进行合并
  • 碳排放智能分析与优化系统:工业减排的革命性突破