欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot結(jié)合Knife4j進(jìn)行API分組授權(quán)管理配置詳解

 更新時間:2025年08月04日 15:36:54   作者:洛可可白  
在現(xiàn)代的微服務(wù)架構(gòu)中,API 文檔和授權(quán)管理是不可或缺的一部分,本文將介紹如何在 Spring Boot 應(yīng)用中集成 Knife4j,并進(jìn)行 API 分組和授權(quán)管理配置,感興趣的小伙伴可以了解下

在現(xiàn)代的微服務(wù)架構(gòu)中,API 文檔和授權(quán)管理是不可或缺的一部分。Knife4j 是一個基于 Swagger 的增強解決方案,它提供了更豐富的功能和更好的用戶體驗。本文將介紹如何在 Spring Boot 應(yīng)用中集成 Knife4j,并進(jìn)行 API 分組和授權(quán)管理配置。

環(huán)境準(zhǔn)備

首先,確保你的項目中已經(jīng)添加了 Knife4j 的依賴:

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

配置 Swagger

application.yml 文件中,你可以配置 Swagger 的相關(guān)屬性,包括 API 文檔的路徑、分組配置以及Knife4j的特定設(shè)置:

springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: order
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: '通用模塊'
      paths-to-match: '/**'
      packages-to-scan: com.example.springboot.common.controller
    - group: '系統(tǒng)模塊'
      paths-to-match: '/**'
      packages-to-scan: com.example.springboot.system.controller
    - group: '用戶模塊'
      paths-to-match: '/**'
      packages-to-scan: com.example.springboot.user.controller

knife4j:
  enable: true
  setting:
    language: zh_cn
    enable-footer-custom: true
    footer-custom-content: "Apache License 2.0 | Copyright xiao he like sleep"
  basic:
    enable: true
    username: username
    password: password

配置 Swagger OpenAPI

在 Spring Boot 應(yīng)用中,你需要定義一個配置類來配置 OpenAPI 的信息:

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("API管理系統(tǒng)")
                        .contact(new Contact().name("xiaohelikesleep").email("2109664977@qq.com"))
                        .description("API管理系統(tǒng)文檔")
                        .version("v1.0")
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")))
                .externalDocs(new ExternalDocumentation()
                        .description("外部文檔")
                        .url("https://springshop.wiki.github.org/docs"))
                .addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION))
                .components(new Components().addSecuritySchemes(
                        HttpHeaders.AUTHORIZATION,
                        new SecurityScheme()
                                .name(HttpHeaders.AUTHORIZATION)
                                .type(SecurityScheme.Type.HTTP)
                                .scheme("Bearer")
                                .in(SecurityScheme.In.HEADER)
                                .bearerFormat("JWT")
                ));
    }
}

自定義 Swagger UI 底部版權(quán)信息

通過 knife4j.setting.enable-footer-custom 屬性,你可以自定義 Swagger UI 底部的版權(quán)信息:

knife4j:
  enable: true
  setting:
    language: zh_cn
    enable-footer-custom: true
    footer-custom-content: "Apache License 2.0 | Copyright xiao he like sleep"
  basic:
    enable: true
    username: 1
    password: 1

啟動應(yīng)用

main 方法中,你可以記錄應(yīng)用啟動的信息,包括應(yīng)用名稱、本地 URL 和文檔 URL:

public static void main(String[] args) {
    ConfigurableEnvironment env = SpringApplication.run(ApiApplication.class, args).getEnvironment();
    String applicationName = env.getProperty("spring.application.name");
    String serverPort = env.getProperty("server.port");
    String serverIp = env.getProperty("ip");

    log.info(
            "----------------------------------------------------------%n" +
            "Application: '%s' is running Success!%n" +
            "Local URL:    http://{}:{}%n" +
            "Document:     http://{}:{}/doc.html%n" +
            "----------------------------------------------------------",
            applicationName, serverIp, serverPort, serverIp, serverPort);
}

運行效果:

Swagger界面:

配置的另一種寫法

package com.example.order.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Knife4jConfig {
    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI().info(new Info()
                .title("訂單服務(wù)接口文檔")
                .version("1.0")
                .description("訂單服務(wù)相關(guān)接口"));
    }

    @Bean
    public GroupedOpenApi orderApi() {
        return GroupedOpenApi.builder()
                .group("訂單服務(wù)")
                .pathsToMatch("/order/**")
                .packagesToScan("com.example.order.controller")
                .build();
    }
}

到此這篇關(guān)于SpringBoot結(jié)合Knife4j進(jìn)行API分組授權(quán)管理配置詳解的文章就介紹到這了,更多相關(guān)SpringBoot Knife4j進(jìn)行API分組管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 讀取zip文件的兩種方式示例詳解

    java 讀取zip文件的兩種方式示例詳解

    ZIP(壓縮文件)是一種常見的文件格式,在Java中可以使用java.util.zip包提供的API來讀取和處理ZIP文件,本文將介紹如何使用Java讀取ZIP文件,并提供代碼示例,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 微信小程序登錄狀態(tài)java后臺解密

    微信小程序登錄狀態(tài)java后臺解密

    這篇文章主要為大家詳細(xì)介紹了微信小程序登錄狀態(tài)java后臺解密,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • java實現(xiàn)畫圖板上畫一條直線

    java實現(xiàn)畫圖板上畫一條直線

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)畫圖板上畫一條直線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 透徹理解Java中Synchronized(對象鎖)和Static Synchronized(類鎖)的區(qū)別

    透徹理解Java中Synchronized(對象鎖)和Static Synchronized(類鎖)的區(qū)別

    這篇文章主要介紹了Java中Synchronized(對象鎖)和Static Synchronized(類鎖)的區(qū)別,希望對大家有所幫助,一起跟隨小編過來看看吧
    2018-05-05
  • Java算法之快速排序舉例詳解

    Java算法之快速排序舉例詳解

    這篇文章主要介紹了Java算法之快速排序的相關(guān)資料,快速排序是一種高效的排序算法,通過遞歸的方式將待排序數(shù)組分成小部分進(jìn)行排序,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • Java中內(nèi)存溢出和內(nèi)存泄漏如何解決

    Java中內(nèi)存溢出和內(nèi)存泄漏如何解決

    ?內(nèi)存溢出?和?內(nèi)存泄漏?是兩種常見的內(nèi)存管理問題,它們都會對程序的性能產(chǎn)生負(fù)面影響,本文主要介紹了Java中的內(nèi)存溢出和內(nèi)存泄漏問題解決,感興趣的可以了解一下
    2024-12-12
  • Spring框架學(xué)習(xí)之Spring?@Autowired實現(xiàn)自動裝配的代碼

    Spring框架學(xué)習(xí)之Spring?@Autowired實現(xiàn)自動裝配的代碼

    自動裝配就是說,你不用手動實現(xiàn)bean之間的組合關(guān)系,只要使用了@Autowired注解,程序就會自動的注入這個需要的bean,前提是你的Spring容器有這個bean,這篇文章主要介紹了Spring?@Autowired實現(xiàn)自動裝配,需要的朋友可以參考下
    2021-12-12
  • Java利用 Exchanger 實現(xiàn)游戲中交換裝備

    Java利用 Exchanger 實現(xiàn)游戲中交換裝備

    JDK 1.5 開始 JUC 包下提供的 Exchanger 類可用于兩個線程之間交換信息。下面我們就來看看Java是如何利用Exchanger一行代碼實現(xiàn)游戲中交換裝備的
    2021-09-09
  • Java實現(xiàn)BASE64編碼和解碼的方法

    Java實現(xiàn)BASE64編碼和解碼的方法

    本篇文章主要介紹了Java實現(xiàn)BASE64編碼和解碼的方法,BASE64編碼通常用于轉(zhuǎn)換二進(jìn)制數(shù)據(jù)為文本數(shù)據(jù),有需要的可以了解一下。
    2016-11-11
  • idea創(chuàng)建springboot項目和springcloud項目的詳細(xì)教程

    idea創(chuàng)建springboot項目和springcloud項目的詳細(xì)教程

    這篇文章主要介紹了idea創(chuàng)建springboot項目和springcloud項目方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10

最新評論