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

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

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

1. 引入依賴

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
    <version>4.4.0</version>
</dependency>

2. 配置文件

簡(jiǎn)短必要版

# 配置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
    # 啟用請(qǐng)求緩存
    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

對(duì)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,對(duì)于自定義文檔的分組

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

是否開啟界面中對(duì)某接口的版本控制,如果開啟,后端變化后Ui界面會(huì)存在小藍(lán)點(diǎn)

knife4j.setting.enable-request-cache

true

是否開啟請(qǐng)求參數(shù)緩存

knife4j.setting.enable-filter-multipart-apis

false

針對(duì)RequestMapping的接口請(qǐng)求類型,在不指定參數(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. 類級(jí)別注解

@Operation

用于描述控制器類中的單個(gè)操作。

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

屬性

  • summary:簡(jiǎn)短描述。
  • 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. 方法級(jí)別注解

@Operation

用于描述單個(gè)操作,類似于類級(jí)別使用方式。

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

屬性

  • summary:簡(jiǎn)短描述。
  • 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 = "請(qǐng)求參數(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ù)級(jí)別注解

@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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

大安市| 孝昌县| 云梦县| 西贡区| 丰镇市| 英超| 郧西县| 仁化县| 奉节县| 夏邑县| 开平市| 北海市| 济宁市| 明水县| 专栏| 吉安市| 乐东| 汝州市| 栾川县| 枣庄市| 藁城市| 岳阳市| 陵水| 烟台市| 拉孜县| 岳池县| 扶余县| 延庆县| 铁力市| 惠水县| 北京市| 黄浦区| 正镶白旗| 肥乡县| 筠连县| 奉贤区| 乌兰浩特市| 神木县| 大同县| 元氏县| 永平县|