springboot3整合knife4j超詳細(xì)教程(不帶swagger2玩)
1. 引入依賴
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>2. 配置文件
簡短必要版
# 配置springdoc-openapi,用于文檔化和訪問API
springdoc:
# 配置Swagger UI的訪問路徑和排序方式
swagger-ui:
path: /swagger-ui.html # Swagger UI的訪問路徑
tags-sorter: alpha # 按字母順序排序標(biāo)簽
operations-sorter: alpha # 按字母順序排序操作
# 配置API文檔的訪問路徑
api-docs:
path: /v3/api-docs # API文檔的訪問路徑
# 配置API分組,用于組織和管理API
group-configs:
- group: 'default' # API分組名稱
paths-to-match: '/**' # 匹配所有路徑
packages-to-scan: com.ykx.easyexceldemo02.controller # 掃描的包,用于自動(dòng)發(fā)現(xiàn)API
# knife4j的增強(qiáng)配置,不需要增強(qiáng)可以不配(詳細(xì)版見下小節(jié))
knife4j:
enable: true
setting:
language: zh_cn詳細(xì)全部版
# 配置Knife4j,以啟用Swagger文檔的增強(qiáng)功能和定制化展示
knife4j:
# 啟用Knife4j擴(kuò)展
enable: true
# 配置展示的文檔分組
documents:
-
# 文檔分組標(biāo)題
group: 2.X版本
# 文檔分組描述
name: 接口簽名
# 指定接口文檔的位置
locations: classpath:sign/*
# 配置Knife4j的展示細(xì)節(jié)和功能開關(guān)
setting:
# 設(shè)置界面語言
language: zh-CN
# 啟用Swagger模型展示
enable-swagger-models: true
# 啟用文檔管理功能
enable-document-manage: true
# 設(shè)置Swagger模型的顯示名稱
swagger-model-name: 實(shí)體類列表
# 是否顯示版本信息
enable-version: false
# 是否啟用參數(shù)緩存刷新
enable-reload-cache-parameter: false
# 啟用后端腳本支持
enable-after-script: true
# 過濾特定方法類型的multipart/form-data接口
enable-filter-multipart-api-method-type: POST
# 是否過濾所有multipart/form-data類型的接口
enable-filter-multipart-apis: false
# 啟用請求緩存
enable-request-cache: true
# 是否顯示自定義主機(jī)名
enable-host: false
# 設(shè)置自定義的主機(jī)名
enable-host-text: 192.168.0.193:8000
# 啟用自定義首頁
enable-home-custom: true
# 設(shè)置自定義首頁的路徑
home-custom-path: classpath:markdown/home.md
# 是否啟用搜索功能
enable-search: false
# 是否顯示頁腳
enable-footer: false
# 啟用自定義頁腳內(nèi)容
enable-footer-custom: true
# 設(shè)置自定義頁腳的內(nèi)容
footer-custom-content: Apache License 2.0 | Copyright 2019-[浙江八一菜刀股份有限公司](https://gitee.com/xiaoym/knife4j)
# 是否啟用動(dòng)態(tài)參數(shù)
enable-dynamic-parameter: false
# 啟用調(diào)試模式
enable-debug: true
# 啟用OpenAPI 3.0的支持
enable-open-api: false
# 啟用接口分組功能
enable-group: true
# 是否啟用CORS跨域支持
cors: false
# 是否啟用生產(chǎn)模式
production: false
# 配置基本的認(rèn)證信息
basic:
# 啟用基本認(rèn)證
enable: false
# 設(shè)置用戶名
username: test
# 設(shè)置密碼
password: 12313注意:要使用Knife4j提供的增強(qiáng),knife4j.enable=true必須開啟
各個(gè)配置屬性說明如下:
屬性
默認(rèn)值
說明值
knife4j.enable
false
是否開啟Knife4j增強(qiáng)模式
knife4j.cors
false
是否開啟一個(gè)默認(rèn)的跨域配置,該功能配合自定義Host使用
knife4j.production
false
是否開啟生產(chǎn)環(huán)境保護(hù)策略,詳情參考文檔
knife4j.basic
對Knife4j提供的資源提供BasicHttp校驗(yàn),保護(hù)文檔
knife4j.basic.enable
false
關(guān)閉BasicHttp功能
knife4j.basic.username
basic用戶名
knife4j.basic.password
basic密碼
knife4j.documents
自定義文檔集合,該屬性是數(shù)組
knife4j.documents.group
所屬分組
knife4j.documents.name
類似于接口中的tag,對于自定義文檔的分組
knife4j.documents.locations
markdown文件路徑,可以是一個(gè)文件夾(classpath:markdowns/*),也可以是單個(gè)文件(classpath:md/sign.md)
knife4j.setting
前端Ui的個(gè)性化配置屬性
knife4j.setting.enable-after-script
true
調(diào)試Tab是否顯示AfterScript功能,默認(rèn)開啟
knife4j.setting.language
zh-CN
Ui默認(rèn)顯示語言,目前主要有兩種:中文(zh-CN)、英文(en-US)
knife4j.setting.enable-swagger-models
true
是否顯示界面中SwaggerModel功能
knife4j.setting.swagger-model-name
Swagger Models
重命名SwaggerModel名稱,默認(rèn)
knife4j.setting.enable-document-manage
true
是否顯示界面中"文檔管理"功能
knife4j.setting.enable-reload-cache-parameter
false
是否在每個(gè)Debug調(diào)試欄后顯示刷新變量按鈕,默認(rèn)不顯示
knife4j.setting.enable-version
false
是否開啟界面中對某接口的版本控制,如果開啟,后端變化后Ui界面會(huì)存在小藍(lán)點(diǎn)
knife4j.setting.enable-request-cache
true
是否開啟請求參數(shù)緩存
knife4j.setting.enable-filter-multipart-apis
false
針對RequestMapping的接口請求類型,在不指定參數(shù)類型的情況下,如果不過濾,默認(rèn)會(huì)顯示7個(gè)類型的接口地址參數(shù),如果開啟此配置,默認(rèn)展示一個(gè)Post類型的接口地址
knife4j.setting.enable-filter-multipart-api-method-type
POST
具體接口的過濾類型
knife4j.setting.enable-host
false
是否啟用Host
knife4j.setting.enable-host-text
false
HOST地址
knife4j.setting.enable-home-custom
false
是否開啟自定義主頁內(nèi)容
knife4j.setting.home-custom-path
主頁內(nèi)容Markdown文件路徑
knife4j.setting.enable-search
false
是否禁用Ui界面中的搜索框
knife4j.setting.enable-footer
true
是否顯示Footer
knife4j.setting.enable-footer-custom
false
是否開啟自定義Footer
knife4j.setting.footer-custom-content
false
自定義Footer內(nèi)容
knife4j.setting.enable-dynamic-parameter
false
是否開啟動(dòng)態(tài)參數(shù)調(diào)試功能
knife4j.setting.enable-debug
true
啟用調(diào)試
knife4j.setting.enable-open-api
true
顯示OpenAPI規(guī)范
knife4j.setting.enable-group
true
顯示服務(wù)分組
3. 常用注解
1. 類級別注解
@Operation
用于描述控制器類中的單個(gè)操作。
@Operation(summary = "獲取用戶列表", description = "返回所有用戶的列表")
@GetMapping("/users")
public List<User> getUsers() {
// ...
}屬性:
summary:簡短描述。description:詳細(xì)說明。tags:標(biāo)簽,用于分類API。responses:響應(yīng)描述。
@Tag
用于為API操作分組。
@Tag(name = "用戶管理", description = "用戶相關(guān)操作")
@RestController
@RequestMapping("/users")
public class UserController {
// ...
}
屬性:
name:標(biāo)簽名。description:標(biāo)簽描述。
2. 方法級別注解
@Operation
用于描述單個(gè)操作,類似于類級別使用方式。
@Operation(summary = "獲取用戶列表", description = "返回所有用戶的列表")
@GetMapping("/users")
public List<User> getUsers() {
// ...
}
屬性:
summary:簡短描述。description:詳細(xì)說明。tags:標(biāo)簽,用于分類API。responses:響應(yīng)描述。
@ApiResponses
用于描述API操作的響應(yīng)。
@Operation(summary = "獲取用戶列表")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "成功", content = @Content(mediaType = "application/json", schema = @Schema(implementation = User.class))),
@ApiResponse(responseCode = "400", description = "請求參數(shù)錯(cuò)誤"),
@ApiResponse(responseCode = "404", description = "找不到資源"),
@ApiResponse(responseCode = "500", description = "服務(wù)器內(nèi)部錯(cuò)誤")
})
@GetMapping("/users")
public List<User> getUsers() {
// ...
}屬性:
value:包含多個(gè)@ApiResponse注解。
@ApiResponse
用于描述單個(gè)響應(yīng)。
屬性:
responseCode:HTTP狀態(tài)碼。description:描述信息。content:響應(yīng)內(nèi)容類型和模式。
3. 參數(shù)級別注解
@Parameter
用于描述單個(gè)參數(shù)。
@Operation(summary = "獲取用戶詳情")
@GetMapping("/{id}")
public User getUser(@Parameter(description = "用戶ID", required = true) @PathVariable Long id) {
// ...
}
屬性:
name:參數(shù)名。description:參數(shù)描述。required:是否必須參數(shù)。schema:參數(shù)模式。
@Parameters
用于描述多個(gè)參數(shù)。
@Operation(summary = "分頁獲取用戶列表")
@Parameters({
@Parameter(name = "page", description = "頁碼", required = true, schema = @Schema(type = "integer", example = "1")),
@Parameter(name = "size", description = "每頁數(shù)量", required = true, schema = @Schema(type = "integer", example = "10"))
})
@GetMapping("/users")
public List<User> getUsersByPage(@RequestParam int page, @RequestParam int size) {
// ...
}
屬性:
value:包含多個(gè)@Parameter注解。
4. 模型類注解
@Schema
用于描述模型類和字段的信息。
@Schema(description = "用戶實(shí)體")
public class User {
@Schema(description = "用戶ID", example = "1")
private Long id;
@Schema(description = "用戶名", example = "Alice")
private String name;
@Schema(description = "用戶年齡", example = "30")
private Integer age;
// getters and setters
}屬性:
description:字段描述。example:示例值。required:是否必須字段。type:字段類型。
@ArraySchema
用于描述數(shù)組類型的字段。
@Schema(description = "用戶列表")
public class UserListResponse {
@ArraySchema(schema = @Schema(implementation = User.class), description = "用戶數(shù)組")
private List<User> users;
// getters and setters
}屬性:
schema:數(shù)組元素的模式。description:數(shù)組描述。
5. 文件上傳相關(guān)注解
@Operation(summary = "上傳文件")
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String uploadFile(@Parameter(description = "文件", required = true) @RequestParam("file") MultipartFile file) {
// ...
}
4. 訪問地址
http://localhost:8080/doc.html

到此這篇關(guān)于springboot3整合knife4j詳細(xì)版,包會(huì)?。ú粠wagger2玩)的文章就介紹到這了,更多相關(guān)springboot3整合knife4j內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Vue.js和Ant Design Vue實(shí)現(xiàn)根據(jù)字段內(nèi)容動(dòng)態(tài)設(shè)置表格顏色功能
在前端開發(fā)中,表格Table是展示數(shù)據(jù)的常見組件,有時(shí),我們需要根據(jù)表格中某些字段的內(nèi)容動(dòng)態(tài)設(shè)置樣式,例如根據(jù)百分比數(shù)值顯示不同的顏色,以提升數(shù)據(jù)的可讀性和用戶體驗(yàn),本文將詳細(xì)介紹如何基于Vue.js和Ant Design Vue實(shí)現(xiàn)這一功能,并結(jié)合實(shí)際代碼示例進(jìn)行解析2025-06-06
Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢
這篇文章主要介紹了Mybatis 實(shí)現(xiàn)一個(gè)搜索框?qū)Χ鄠€(gè)字段進(jìn)行模糊查詢,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Java class文件格式之?dāng)?shù)據(jù)類型(二)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java class文件格式之?dāng)?shù)據(jù)類型(二)的相關(guān)資料,需要的朋友可以參考下2017-06-06

