首页 > 编程语言 >手把手教你解决spring boot导入swagger2版本冲突问题,刘老师教编程

手把手教你解决spring boot导入swagger2版本冲突问题,刘老师教编程

时间:2024-07-05 13:19:34浏览次数:11  
标签:依赖 版本 Spring boot swagger2 刘老师 Boot spring Swagger

手把手教你解决spring boot导入swagger2版本冲突问题

本文仅为个人理解,欢迎大家批评指错

首先Spring Boot 3 和 Swagger 2 不兼容。在 Spring Boot 3 中,应该使用 Springdoc 或其他与 Spring Boot 3 兼容的 API 文档工具来替代 Swagger 2。
Swagger 2 的依赖底层使用的是 javax 依赖包,而 Spring Boot 3 使用的是 Jakarta 依赖包。一般来说,可以将 Spring Boot 的版本降到 3.0.1 以下来解决这个问题,但如果想要使用 3.0.1 版本以上的 Spring Boot,启动时就会出现报错。

  1. 去pop.xml查看你springframework的版本,如果你已经是Spring boot3了,像我这里是当前的最新版3.3.1,那就改成2.7.2,改完之后点击右上角m形状的刷新按钮
    alt text

  2. 改完之后使用了HttpServletRequest和HttpServletResponse的类应该都会报错,也是因为我之前提到的Swagger 2 的依赖底层使用的是 javax 依赖包,而 Spring Boot 3 使用的是 Jakarta 依赖包。
    alt text

此时不用导入这个依赖,加入了也没用spring boot2也不用这个.

<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>6.0.0</version>
    <scope>provided</scope>
</dependency>

来个错误演示,加了之后的效果
alt text

这是因为Swagger 2 的依赖底层使用的是 javax 依赖包
alt text

正确做法加入这两个包替换原来的包就行了,很简单

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  1. 在添加Swagger依赖之前先运行一下,如果你没报错但是运行失败,那就是java版本太高了,像我这里就是21
    alt text
    alt text

  2. 剩下就简单了,修改application.properties

因为Spring Boot 2.6.X后与Swagger有版本冲突问题,需要加入以下配置

spring.mvc.pathmatch.matching-strategy=ant_path_matcher
  1. 修改pop.xml
<!-- 添加swagger2相关功能-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<!-- 添加swagger-ui相关功能-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
  1. 在config目录下新建一个配置类
@Configuration  //告诉Spring容器这是一个配置类
@EnableSwagger2 //开启Swagger的功能
public class SwaggerConfig {
    
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com"))//com包下的所有AIP都交给Swagger2管理
                .paths(PathSelectors.any()).build();
    }

    /**
     * 这里为API文档显示的信息
     */
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("演示项目API")
                .description("学习Swagger2的演示项目")
                .version("1.0")
                .build();
    }

}

成功运行
alt text

  1. 最后一步输入网址即可http://localhost:8080/swagger-ui.html

标签:依赖,版本,Spring,boot,swagger2,刘老师,Boot,spring,Swagger
From: https://www.cnblogs.com/luckyzthao/p/18285608

相关文章

  • srpingboot 初识
    依赖管理父项目(一直网上找)spring-boot-dependencies决定了当前springboot预先配置的所有依赖及版本<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.4.RELEASE</ver......
  • 基于Java+SpringBoot+Vue的学生宿舍管理系统的设计与开发(源码+lw+部署文档+讲解等)
    文章目录前言项目背景介绍技术栈后端框架SpringBoot前端框架Vue数据库MySQL(MyStructuredQueryLanguage)具体实现截图详细视频演示系统测试系统测试目的系统功能测试系统测试结论代码参考数据库参考源码获取前言......
  • springboot 如何指定 active 的 application yaml
    在SpringBoot项目中,你可以通过多种方式指定要使用的`application.yml`文件中的`active`配置文件(profile)。指定activeprofile的方法主要包括以下几种:###1.使用命令行参数当你通过命令行启动SpringBoot应用程序时,可以使用`--spring.profiles.active`参数来指定a......
  • springboot 中推荐使用哪些比较好的 web 客户端 SDK
    在SpringBoot中,有几种常用和推荐的Web客户端SDK,可以用于与RESTful或其他类型的Web服务进行交互。1.SpringWebClientSpringWebClient是Spring5中引入的非阻塞、响应式的Web客户端,推荐用于现代SpringBoot应用。特点响应式编程:支持响应式编程模型,适用于需......
  • 跟我一起学习和开发动态表单系统-后端用spring boot、mybatis实现方法(4)
     ##动态表单系统:利用SpringBoot和MyBatis实现后端服务在现代企业应用中,表单是数据收集和处理的核心部分。然而,传统的表单系统难以适应快速变化的需求。为了解决这个问题,我们可以使用动态表单系统,它可以根据业务需求灵活地调整表单结构。本文将介绍如何使用SpringBoot和......
  • 7.4日BootlLoad总结
    最近在研究单片机远程升级方法,看了网上许多资料后了解到,远程升级就是用IAP方法去烧写flash区,而IAP方法在EEPROM中有用到,也就是所说的掉电记忆,掉电不丢失的情况,而相较于51单片机,网上的资料大多是有关STM32单片机的,且使用操作系统,适合于芯片内存较大的芯片,分区成3-4块,首先是BOOT引导......
  • springboot+vue+mybatis前台点菜系统+PPT+论文+讲解+售后
    21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对前台点菜系统进行了介绍,......
  • springboot+vue+mybatis企业保修系统+PPT+论文+讲解+售后
    企业管理系统提供给用户一个企业信息管理的系统,最新的企业信息让用户及时了解企业管理动向,,还能通过交流区互动更方便。本系统采用了B/S体系的结构,使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员、员工和主管三个部分,系统管理员主要功能包括主页、个......
  • springboot 如何使用MongoDB集成 shedlock-spring
    ShedLock是一个用于防止在分布式环境中任务重复执行的库。它允许多个节点共享一个任务调度器,并确保同一时间只有一个节点能够执行某个任务。SpringBoot项目中可以通过集成shedlock-spring来实现这一功能。下面是一个完整的集成指南:1.添加依赖首先,需要在pom.xml中添加sh......
  • springboot 中每分钟执行一次的 cron 表达式怎么写
    在SpringBoot中,如果你需要使用Cron表达式来每分钟执行一次任务,可以使用Spring的@Scheduled注解。Cron表达式是一种用来表示时间点的字符串,通过这些字符串,你可以非常灵活地定义任务的执行时间。Cron表达式格式Cron表达式由六个或七个字段组成,按以下顺序排列:秒(Seconds):0-59分......