再学习黑马苍穹外卖项目swagger时,按照相同的配置方式,再更改数据库用户名和密码后,启项目时请求swagger生成的接口文档时遇到了Knife4j请求异常的问题,经过数小时努力,现已解决,方法如下,可供参考:
一、根据Knife4j官方异常处理参考方法自检
https://doc.xiaominfo.com/docs/faq/knife4j-exception
二、检查Spring Boot 版本兼容性
首先,确保您了解您的项目所使用的Spring Boot版本。
以下是一些常见的Spring Boot版本及其对应的Knife4j版本兼容推荐:
Spring Boot版本 | Knife4j Swagger2规范 | Knife4j OpenAPI3规范 |
---|---|---|
1.5.x~2.0.0 | <Knife4j 2.0.0 | >=Knife4j 4.0.0 |
2.0~2.2 | Knife4j 2.0.0 ~ 2.0.6 | >=Knife4j 4.0.0 |
2.2.x~2.4.0 | Knife4j 2.0.6 ~ 2.0.9 | >=Knife4j 4.0.0 |
2.4.0~2.7.x | >=Knife4j 4.0.0 | >=Knife4j 4.0.0 |
>= 3.0 | >=Knife4j 4.0.0 | >=Knife4j 4.0.0 |
Knife4j在之前的版本更新中,逐渐提供了一些服务端适配的增强特性功能。
三、更改项目Spring Boot版本
1.将项目中父模块sky-take-out的pom.xml文件中父依赖Spring Boot 改为2.7.3
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.7.3</version>
</parent>
2.将工程中所有knife4j依赖版本号改为3.0.2
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
3.更改项目java编译器的版本 使用jdk11即可。操作如下:点击File-->Project Structer
4.同时做如下更改 同样将Spring Boot的编译版本改为11
5.以上更改完成后,还需要做出最后一步,在maven中对父工程install: