Spring Boot集成接口管理工具Knife4j怎么用(knife4j,spring boot,开发技术)

时间:2024-05-09 10:55:12 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Spring%C2%A0Boot%E9%9B%86%E6%88%90%E6%8E%A5%E5%8F%A3%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7Knife4j%E6%80%8E%E4%B9%88%E7%94%A8

既然要在 Spring Boot 中使用 Knife4j,那首先就得创建一个 Spring Boot 项目。当然,我在之前已经写过文章介绍如何创建 Spring Boot 项目了,所以这里不再赘述。如果你还对 Spring Boot 创建方式不太熟悉,可以参考我之前的文章:SpringBoot教程之创建项目的三种方式

既然是用 Maven 来管理项目依赖,那我们在项目pom.xml中引入Knife4j的相关依赖包,引入代码如下。

接着在项目中创建一个配置包config,用于配置 Swagger 的配置依赖。在这里可以配置扫描的controller所在的包,设置接口文档的标题、描述、作者信息等。

这里其实和 Swagger2 和 Swagger3 很相似,Swagger 也是可以通过配置类来指定这些信息。

接着我们编写一个测试的controller,用于在 Knife4j 中展示用,代码如下。

然后将项目启动起来,接着到浏览器中去打开http://localhost:8080/doc.html,就会出现以下的主界面。这里有我们之前在配置类中所设置的一些接口信息,此外,还对接口进行了统计。因为我们代码中只写了一个POST的请求,所以这里统计出只有一个POST请求。

打开具体接口,这里就有我们接口的请求和响应的一些情况说明。

点击左侧调试按钮,我们就可以在Knife4j中测试我们的接口。

当然,如果你按照以上步骤顺利打开了 Knife4j 的文档管理页面,那接下来的内容你大可不必了解。但如果你按照上边步骤搭建过程中也出现了问题,那不妨看看以下是否有你遇到的Bug

首先是报空指针异常,报错信息如下。

经过查询资料可知,这是因为Springfox使用的路径匹配是基于AntPathMatcher的,但是由于我使用的是Spring Boot 2.6.x版本,正好这个版本使用的是PathPatternMatcher,所以才会出现这个问题。所以这里主要可以通过两种方式来解决。

第一种,无可厚非,就是将我们的Spring Boot的版本降低,从2.6.x降到2.5.x,此时就应该是可以了,这里可以自己去试一下。

第二种,既然我们都已经用上2.6.x版本了,那我们就是不想降低版本咋整。此时,我们只需要在主程序启动类中加上@EnableWebMvc这个注解。然后再次启动程序,你就会发现启动成功了!

一山放过一山拦,以为翻过了上面的山,就能成功了。没想到出师不利,这不又遇到了报错请求路径未找到。

当我们成功启动项目后,在浏览器中打开http://localhost:8080/doc.html,却没想到迎接我们的不是成功界面,而是下面的Whitelabel Error Page

然后到IDEA中一看日志,程序照常运行,也没报错,但是给我们抛出了一个WARN,警告信息如下:

这是因为我们为了解决上面的Bug而使用到了@EnableWebMvc,由于它实现了WebMvcConfigurer接口,所以会导致我们访问识别。

这时候问题就来了,上面又需要这个注解,但是下面这个问题又不需要,那该怎么办呢?

其实很简单,既然我们要保留@EnableWebMvc,那我们去配置个规则不就好了。

在项目的config包下,我们新建一个配置类WebMvcConfigurer记成WebMvcConfigurationSupport类,接着将dom.html过滤掉即可。

完成上述配置后,再去运行项目,再到浏览器中去访问http://localhost:8080/doc.html应该就能正常访问 Knife4j 文档管理页面了。

本文:Spring Boot集成接口管理工具Knife4j怎么用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Mysql如何修改字段名和修改字段类型下一篇:

23 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18