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

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

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

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

環(huá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 應用中,你需要定義一個配置類來配置 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

啟動應用

main 方法中,你可以記錄應用啟動的信息,包括應用名稱、本地 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進行API分組授權(quán)管理配置詳解的文章就介紹到這了,更多相關(guān)SpringBoot Knife4j進行API分組管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

南陵县| 宁河县| 甘南县| 祁东县| 尉犁县| 唐山市| 当涂县| 乌兰浩特市| 庆阳市| 绥宁县| 宜川县| 定襄县| 大石桥市| 建湖县| 伊春市| 东港市| 延边| 新泰市| 独山县| 宁安市| 丹巴县| 儋州市| 阳东县| 财经| 资源县| 双牌县| 克东县| 九龙县| 西和县| 安丘市| 南雄市| 陕西省| 新巴尔虎左旗| 彰化县| 台东县| 嘉兴市| 大田县| 开远市| 临邑县| 珠海市| 岑溪市|