最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot3整合knife4j超詳細教程(不帶swagger2玩)

 更新時間:2025年11月27日 09:32:33   作者:q***9658  
本文詳細介紹了如何在Spring Boot 3項目中整合Knife4j,并提供了配置文件的詳細說明和常用注解的使用方法,感興趣的朋友跟隨小編一起看看吧

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      # 按字母順序排序標簽
    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  # 掃描的包,用于自動發(fā)現API
# knife4j的增強配置,不需要增強可以不配(詳細版見下小節(jié))
knife4j:
  enable: true
  setting:
    language: zh_cn

詳細全部版

# 配置Knife4j,以啟用Swagger文檔的增強功能和定制化展示
knife4j:
  # 啟用Knife4j擴展
  enable: true
  # 配置展示的文檔分組
  documents:
    - 
      # 文檔分組標題
      group: 2.X版本
      # 文檔分組描述
      name: 接口簽名
      # 指定接口文檔的位置
      locations: classpath:sign/*
  # 配置Knife4j的展示細節(jié)和功能開關
  setting:
    # 設置界面語言
    language: zh-CN
    # 啟用Swagger模型展示
    enable-swagger-models: true
    # 啟用文檔管理功能
    enable-document-manage: true
    # 設置Swagger模型的顯示名稱
    swagger-model-name: 實體類列表
    # 是否顯示版本信息
    enable-version: false
    # 是否啟用參數緩存刷新
    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
    # 是否顯示自定義主機名
    enable-host: false
    # 設置自定義的主機名
    enable-host-text: 192.168.0.193:8000
    # 啟用自定義首頁
    enable-home-custom: true
    # 設置自定義首頁的路徑
    home-custom-path: classpath:markdown/home.md
    # 是否啟用搜索功能
    enable-search: false
    # 是否顯示頁腳
    enable-footer: false
    # 啟用自定義頁腳內容
    enable-footer-custom: true
    # 設置自定義頁腳的內容
    footer-custom-content: Apache License 2.0 | Copyright 2019-[浙江八一菜刀股份有限公司](https://gitee.com/xiaoym/knife4j)
    # 是否啟用動態(tài)參數
    enable-dynamic-parameter: false
    # 啟用調試模式
    enable-debug: true
    # 啟用OpenAPI 3.0的支持
    enable-open-api: false
    # 啟用接口分組功能
    enable-group: true
  # 是否啟用CORS跨域支持
  cors: false
  # 是否啟用生產模式
  production: false
  # 配置基本的認證信息
  basic:
    # 啟用基本認證
    enable: false
    # 設置用戶名
    username: test
    # 設置密碼
    password: 12313

注意:要使用Knife4j提供的增強,knife4j.enable=true必須開啟

各個配置屬性說明如下:

屬性

默認值

說明值

knife4j.enable

false

是否開啟Knife4j增強模式

knife4j.cors

false

是否開啟一個默認的跨域配置,該功能配合自定義Host使用

knife4j.production

false

是否開啟生產環(huán)境保護策略,詳情參考文檔

knife4j.basic

對Knife4j提供的資源提供BasicHttp校驗,保護文檔

knife4j.basic.enable

false

關閉BasicHttp功能

knife4j.basic.username

basic用戶名

knife4j.basic.password

basic密碼

knife4j.documents

自定義文檔集合,該屬性是數組

knife4j.documents.group

所屬分組

knife4j.documents.name

類似于接口中的tag,對于自定義文檔的分組

knife4j.documents.locations

markdown文件路徑,可以是一個文件夾(classpath:markdowns/*),也可以是單個文件(classpath:md/sign.md)

knife4j.setting

前端Ui的個性化配置屬性

knife4j.setting.enable-after-script

true

調試Tab是否顯示AfterScript功能,默認開啟

knife4j.setting.language

zh-CN

Ui默認顯示語言,目前主要有兩種:中文(zh-CN)、英文(en-US)

knife4j.setting.enable-swagger-models

true

是否顯示界面中SwaggerModel功能

knife4j.setting.swagger-model-name

Swagger Models

重命名SwaggerModel名稱,默認

knife4j.setting.enable-document-manage

true

是否顯示界面中"文檔管理"功能

knife4j.setting.enable-reload-cache-parameter

false

是否在每個Debug調試欄后顯示刷新變量按鈕,默認不顯示

knife4j.setting.enable-version

false

是否開啟界面中對某接口的版本控制,如果開啟,后端變化后Ui界面會存在小藍點

knife4j.setting.enable-request-cache

true

是否開啟請求參數緩存

knife4j.setting.enable-filter-multipart-apis

false

針對RequestMapping的接口請求類型,在不指定參數類型的情況下,如果不過濾,默認會顯示7個類型的接口地址參數,如果開啟此配置,默認展示一個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

是否開啟自定義主頁內容

knife4j.setting.home-custom-path

主頁內容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內容

knife4j.setting.enable-dynamic-parameter

false

是否開啟動態(tài)參數調試功能

knife4j.setting.enable-debug

true

啟用調試

knife4j.setting.enable-open-api

true

顯示OpenAPI規(guī)范

knife4j.setting.enable-group

true

顯示服務分組

3. 常用注解

1. 類級別注解

@Operation

用于描述控制器類中的單個操作。

@Operation(summary = "獲取用戶列表", description = "返回所有用戶的列表")
@GetMapping("/users")
public List<User> getUsers() {
    // ...
}

屬性

  • summary:簡短描述。
  • description:詳細說明。
  • tags:標簽,用于分類API。
  • responses:響應描述。
@Tag

用于為API操作分組。

@Tag(name = "用戶管理", description = "用戶相關操作")
@RestController
@RequestMapping("/users")
public class UserController {
    // ...
}

屬性

  • name:標簽名。
  • description:標簽描述。

2. 方法級別注解

@Operation

用于描述單個操作,類似于類級別使用方式。

@Operation(summary = "獲取用戶列表", description = "返回所有用戶的列表")
@GetMapping("/users")
public List<User> getUsers() {
    // ...
}

屬性

  • summary:簡短描述。
  • description:詳細說明。
  • tags:標簽,用于分類API。
  • responses:響應描述。
@ApiResponses

用于描述API操作的響應。

@Operation(summary = "獲取用戶列表")
@ApiResponses(value = {
    @ApiResponse(responseCode = "200", description = "成功", content = @Content(mediaType = "application/json", schema = @Schema(implementation = User.class))),
    @ApiResponse(responseCode = "400", description = "請求參數錯誤"),
    @ApiResponse(responseCode = "404", description = "找不到資源"),
    @ApiResponse(responseCode = "500", description = "服務器內部錯誤")
})
@GetMapping("/users")
public List<User> getUsers() {
    // ...
}

屬性

  • value:包含多個@ApiResponse注解。
@ApiResponse

用于描述單個響應。

屬性

  • responseCode:HTTP狀態(tài)碼。
  • description:描述信息。
  • content:響應內容類型和模式。

3. 參數級別注解

@Parameter

用于描述單個參數。

@Operation(summary = "獲取用戶詳情")
@GetMapping("/{id}")
public User getUser(@Parameter(description = "用戶ID", required = true) @PathVariable Long id) {
    // ...
}

屬性

  • name:參數名。
  • description:參數描述。
  • required:是否必須參數。
  • schema:參數模式。
@Parameters

用于描述多個參數。

@Operation(summary = "分頁獲取用戶列表")
@Parameters({
    @Parameter(name = "page", description = "頁碼", required = true, schema = @Schema(type = "integer", example = "1")),
    @Parameter(name = "size", description = "每頁數量", required = true, schema = @Schema(type = "integer", example = "10"))
})
@GetMapping("/users")
public List<User> getUsersByPage(@RequestParam int page, @RequestParam int size) {
    // ...
}

屬性

  • value:包含多個@Parameter注解。

4. 模型類注解

@Schema

用于描述模型類和字段的信息。

@Schema(description = "用戶實體")
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

用于描述數組類型的字段。

@Schema(description = "用戶列表")
public class UserListResponse {
    @ArraySchema(schema = @Schema(implementation = User.class), description = "用戶數組")
    private List<User> users;
    // getters and setters
}

屬性

  • schema:數組元素的模式。
  • description:數組描述。

5. 文件上傳相關注解

@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

到此這篇關于springboot3整合knife4j詳細版,包會!(不帶swagger2玩)的文章就介紹到這了,更多相關springboot3整合knife4j內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

榆树市| 宁国市| 东源县| 贵港市| 沙田区| 阿坝县| 西吉县| 双江| 当阳市| 运城市| 富裕县| 上高县| 东阳市| 于都县| 睢宁县| 友谊县| 乌兰浩特市| 浦县| 定安县| 郓城县| 新密市| 保定市| 尖扎县| 江门市| 庆安县| 皋兰县| 云梦县| 永和县| 雅江县| 大同县| 施秉县| 靖江市| 青川县| 漠河县| 胶州市| 吴旗县| 长乐市| 自治县| 黑山县| 梓潼县| 神木县|