欢迎光临散文网 会员登陆 & 注册

(文末有彩蛋,不看白不看)兑现一下之前答应读者的事

2023-01-29 23:21 作者:刘水镜  | 我要投稿

大家过年好呀!(我)明天就要开工上班啦!在假期的最后一天踢了会球,简单吃点东西,晚上来兑现答应一位读者的事情。开整!


前情提要


这篇文章缘起于「开发者」技术交流群中一位读者遇到的问题:



简单来说,就是 Spring Boot 3 + Swagger3 的组合用之前的方式配置有问题。趁着假期还在,咱们把问题解决了,也算是兑现之前的承诺。


问题重现


我们先来复现一下这位读者描述的问题,首先下载《Spring Boot趣味实战课》Swagger 章节的相关源码:

https://github.com/liushuijinger/spring-boot-book/tree/master/05-rest

然后将 Spring Boot 的版本升级到 3.0+。当然,在此之前,你需要先配置好 JDK 17 及以上的 Java 环境。


以上操作完成后,我们启动项目。这时你会看到类似如下的报错:



解决问题

《Spring Boot趣味实战课》中使用了 knife4j,所以我们直接基于 knife4j 进行配置。还是我们熟悉的步骤,先添加 Maven 依赖:

记得将之前与 Swagger 有关的依赖全部删除。


接下来修改 Swagger 的配置类:


最后修改一下 Controller:

其实就是换了两个注解。


改完以后,我们启动项目并访问 http://localhost:8080/doc.html 来看看效果:

OK,看到这个界面,说明问题已经搞定了。那么这是怎么一回事呢?


收个尾


导致 Spring Boot 3 与之前的配置不兼容的原因很简单——Spring Boot 3 只支持 OpenAPI3 规范,需要引用 springdoc-openapi 相关的 Jar。所以,换掉 Maven 依赖,再简单修改一下,就 OK 了。


想知道具体是哪些依赖,或者想使用原生 Swagger 的可以戳这里:https://springdoc.org/


一些注解的变化:

  • @Api@Tag

  • @ApiIgnore@Parameter(hidden = true) or @Operation(hidden = true) or @Hidden

  • @ApiImplicitParam@Parameter

  • @ApiImplicitParams@Parameters

  • @ApiModel@Schema

  • @ApiModelProperty(hidden = true)@Schema(accessMode = READ_ONLY)

  • @ApiModelProperty@Schema

  • @ApiOperation(value = "foo", notes = "bar")@Operation(summary = "foo", description = "bar")

  • @ApiParam@Parameter

  • @ApiResponse(code = 404, message = "foo")@ApiResponse(responseCode = "404", description = "foo")


彩蛋


彩蛋来啦!视频没有声音,请放心在任意场合观看!

哈哈,表演个节目给大家拜个晚年,祝大家晚年幸福哦~。如果觉得我这后空翻还不错,啊呸!觉得文章写得不错,就转评赞随便给一个吧!



(文末有彩蛋,不看白不看)兑现一下之前答应读者的事的评论 (共 条)

分享到微博请遵守国家法律