手把手教你解决spring boot导入swagger2版本冲突问题,刘老师教编程
手把手教你解决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,启动时就会出现报错。
去pop.xml查看你springframework的版本,如果你已经是Spring boot3了,像我这里是当前的最新版3.3.1,那就改成2.7.2,改完之后点击右上角m形状的刷新按钮

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

此时不用导入这个依赖,加入了也没用spring boot2也不用这个.
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
来个错误演示,加了之后的效果
这是因为Swagger 2 的依赖底层使用的是 javax 依赖包
正确做法加入这两个包替换原来的包就行了,很简单
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
在添加Swagger依赖之前先运行一下,如果你没报错但是运行失败,那就是java版本太高了,像我这里就是21


剩下就简单了,修改application.properties
因为Spring Boot 2.6.X后与Swagger有版本冲突问题,需要加入以下配置
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
- 修改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>
- 在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();
}
}
成功运行
- 最后一步输入网址即可http://localhost:8080/swagger-ui.html
手把手教你解决spring boot导入swagger2版本冲突问题,刘老师教编程的更多相关文章
- 如何解决spring boot 项目导入依赖后代码报错问题
如何解决spring boot 项目导入依赖后代码报错问题 2020-08-15 14:17:18 代码截图如图所示(由于本人问题已经解决,没来得及截图,所以在网上找了一张图片)
- Spring Boot 项目学习 (四) Spring Boot整合Swagger2自动生成API文档
0 引言 在做服务端开发的时候,难免会涉及到API 接口文档的编写,可以经历过手写API 文档的过程,就会发现,一个自动生成API文档可以提高多少的效率. 以下列举几个手写API 文档的痛点: 文档需 ...
- Spring Boot 集成 Swagger2 与配置 OAuth2.0 授权
Spring Boot 集成 Swagger2 很简单,由于接口采用了OAuth2.0 & JWT 协议做了安全验证,使用过程中也遇到了很多小的问题,多次尝试下述配置可以正常使用. Maven ...
- Spring Boot之Swagger2集成
一.Swagger2简单介绍 Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档.它既可以减少我们创建文档的工作量,同时 ...
- spring boot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器 ...
- 解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 学习了:https://blog.csdn. ...
- 解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题
解决Spring Boot 从1.x升级到 2.x 后 单点登陆(SSO)问题 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring S ...
- Spring Boot 启动 Struts 报冲突
错误信息如下: Caused by: com.opensymphony.xwork2.config.ConfigurationException: Bean type class com.opensy ...
- Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响
前几天在<Spring Boot 2.4 对多环境配置的支持更改>一文中,给大家讲解了Spring Boot 2.4版本对多环境配置的配置变化.除此之外,还有一些其他配置变化,所以今天我们 ...
- 如何选择Spring cloud和 Spring Boot对应的版本
如何选择Spring cloud和 Spring Boot对应的版本 首先,我们进入Spring Cloud官网,查询Spring cloud的版本和对应的Spring Boot版本 打开Spring ...
随机推荐
- code::blocks更改编译器配置
- .NET ASPIRE 预览版 7 发布
.NET Aspire 预览版 7 并不是原计划的一部分,此预览版有很多重大 API 更改,部分原因是一旦产品发布,我们将致力于稳定的 API 表面.可以说,Aspire团队希望确保在最终发布之前完成 ...
- 服务器root密码忘记,使用centos7 紧急模式修改root密码
一.实战场景 公司一台centos7服务器root密码忘记了,需要你修改root密码,找回root身份. 二.进入紧急模式修改root密码 首先重启服务器,看到这界面时选择第一项,按下e键进行编辑 2 ...
- 授权调用: 介绍 Transformers 智能体 2.0
简要概述 我们推出了 Transformers 智能体 2.0! ⇒ 在现有智能体类型的基础上,我们新增了两种能够 根据历史观察解决复杂任务的智能体. ⇒ 我们致力于让代码 清晰.模块化,并确保最终提 ...
- 8.17考试总结(NOIP模拟42)[卷·简单题·粉丝·字符串]
你的败因只有一个,就是与我为敌. T1 卷 解题思路 乍一看,简单的树形 DP . 后来一看数据范围,发现事实并非如此.(\((10^9)^{2\times 10^5}\)????) 毕竟取 \( ...
- 使用C代码实现读取文件中的hex字符串,转换为字节数组
举例说明: ptp.txt文件中的内容为: 7a7ac0a8c80100000000003388f70002002c000004000000000000000000000000000000000000 ...
- 前端性能优化的利器 ——— 浅谈JavaScript中的防抖和节流
防抖和节流函数是工作中两种常用的前端性能优化函数,今天我就来总结一下什么是防抖和节流,并详细说明一下如何在工作中应用防抖和节流函数 什么是防抖和节流? 在 JavaScript 中,防抖(deboun ...
- Linux Topicons Plus桌面工具安装
Topicons Plus是Linux系统GNOME桌面环境的工具,方便于在工具栏显示应用小图标. 1.进入GNOME商店搜搜下载TopIcons Plus工具.下载路径:https://extens ...
- (编程语言界的丐帮 C#).NET Framework 读取Excel到DataTable
(编程语言界的丐帮 C#).NET Framework 读取Excel到DataTable 生成DataTable到Excel,支持 2007 .xlsx,2003 .xls. nuget 引用 NP ...
- C#.NET 国密SM4加密解密 CBC ECB 2种模式
注意点: 1.加密时,明文转 byte[] 时,不要用 Encoding.Default,一定要指定编码,如:UTF-8. 解密时,解出的 byte[] 转 string 同样要指定相同的编码. 2. ...


