SpringBoot與knife4j的整合使用過程
在網(wǎng)上看了一堆 knife4j 的使用教程,很多都是報一堆錯誤,經(jīng)過千方百次的嘗試,終于找到了合適的版本及其配置
版本
此處是 knife4j2.0.7 版本 SpringBoot2.3.5.RELEASE 版本
其他版本推薦
| Spring Boot版本 | Knife4j Swagger2規(guī)范 |
| 1.5.x ~ 2.0.0 | <Knife4j 2.0.0 |
| 2.0 ~ 2.2 | Knife4j 2.0.0 ~ 2.0.6 |
| 2.2.x~2.4.0 | Knife4j 2.0.6 ~ 2.0.9 |
| 2.4.0~2.7.x | >=Knife4j 4.0.0 |
| >= 3.0 | >=Knife4j 4.0.0 |
導(dǎo)入maven坐標(biāo)
<!-- 導(dǎo)入knife4j2.0.7版本依賴 SpringBoot2.3.5.RELEASE 版本 --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.7</version> </dependency>
另外SpringBoot2.3.2.RELEASE ~ SpringBoot2.5.15版本與Knife4j2.0.7 ~ Knife4j3.0.3整合SpringBoot的起步依賴也是兼容的
編寫配置類
目錄結(jié)構(gòu)如下:

配置類:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
// Student組的測試文檔
@Bean(value = "studentDocket")
public Docket studentDocket() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("測試學(xué)生端接口文檔") // 設(shè)置當(dāng)前文檔的標(biāo)題
.description("用于測試學(xué)生端的所有接口的文檔") //自定義文檔簡介
.termsOfServiceUrl("寫學(xué)生端人員的服務(wù)地址URL") //寫這個模塊功能的程序員相關(guān)的URL
.contact("寫學(xué)生端人員的聯(lián)系方式(郵箱)") //寫這個模塊功能的程序員的email郵箱
.version("1.0") //指定當(dāng)前文檔的版本
.build())
//分組名稱
.groupName("學(xué)生端") //設(shè)置當(dāng)前組名稱
.select()
//這里指定Controller掃描包路徑,"com.example.controller.student"是一個放Controller的包
.apis(RequestHandlerSelectors.basePackage("com.example.controller.student"))
.paths(PathSelectors.any())
.build();
return docket;
}
// Teacher組的測試文檔
@Bean(value = "teacherDocket")
public Docket teacherDocket() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("測試教師端接口文檔")
.description("用于測試教師端的所有接口的文檔")
.termsOfServiceUrl("寫教師端人員的服務(wù)地址URL")
.contact("寫教師端人員的聯(lián)系方式(郵箱)")
.version("1.0")
.build())
//分組名稱
.groupName("教師端")
.select()
//這里指定Controller掃描包路徑
.apis(RequestHandlerSelectors.basePackage("com.example.controller.teacher"))
.paths(PathSelectors.any())
.build();
return docket;
}
}StudentController學(xué)生控制層

TeacherController教師控制層

注解說明:
@Api :可以通過tags屬性描述當(dāng)前控制層的相關(guān)信息
@ApiOperation:可以通過value屬性描述當(dāng)前接口的功能
頁面效果
訪問地址:http://localhost:8080/doc.html (我的端口是8080,如果你修改了程序啟動端口,記得換成自己的端口)
學(xué)生端

教師端

到此這篇關(guān)于SpringBoot與knife4j的整合使用的文章就介紹到這了,更多相關(guān)SpringBoot 整合knife4j內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot如何實現(xiàn)定時任務(wù)的動態(tài)增刪啟停詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot如何實現(xiàn)定時任務(wù)的動態(tài)增刪啟停的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
centos7如何通過systemctl啟動springboot服務(wù)代替java -jar方式啟動
這篇文章主要介紹了centos7如何通過systemctl啟動springboot服務(wù)代替java -jar方式啟動,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01
Springboot項目由JDK8升級至JDK17詳細(xì)教程
這篇文章主要為大家詳細(xì)介紹了Springboot項目如何由JDK8升級至JDK17,本文為大家整理了全過程的詳細(xì)步驟,有需要的小伙伴可以參考一下2025-06-06
Java協(xié)程編程之Loom項目實戰(zhàn)記錄
這篇文章主要介紹了Java協(xié)程編程之Loom項目嘗鮮,如果用嘗鮮的角度去使用Loom項目,可以提前窺探JVM開發(fā)者們是如何基于協(xié)程這個重大特性進(jìn)行開發(fā)的,這對于提高學(xué)習(xí)JDK內(nèi)核代碼的興趣有不少幫助,需要的朋友可以參考下2021-08-08
Java中Spring使用Quartz任務(wù)調(diào)度定時器
本篇文章主要介紹了Java中Spring使用Quartz任務(wù)調(diào)度定時器,具有一定的參考價值,有興趣的可以了解一下。2017-02-02
Java中的信息摘要算法MessageDigest類用法詳解
這篇文章主要介紹了Java中的信息摘要算法MessageDigest類用法詳解,java.security.MessageDigest類為應(yīng)用程序提供信息摘要算法的功能,如MD5或SHA-1或SHA-256算法,信息摘要是安全的單向哈希函數(shù),它接收任意大小的數(shù)據(jù),并輸出固定長度的哈希值,需要的朋友可以參考下2024-01-01

