当前位置: 首页 > backend >正文

Spring Boot 应用结合 Knife4j 进行 API 分组授权管理配置

🌟 前言

欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍

  • 🤖 洛可可白:个人主页

  • 🔥 个人专栏:✅前端技术 ✅后端技术

  • 🏠 个人博客:洛可可白博客

  • 🐱 代码获取:xiaohelikesleep

  • 📷 封面壁纸:洛可可白wallpaper

在这里插入图片描述

Knife4j API 分组授权管理配置

  • Spring Boot 应用结合 Knife4j 进行 API 分组授权管理配置
    • 😭写在前面
    • 环境准备
    • 配置 Swagger
    • 配置 Swagger OpenAPI
    • 自定义 Swagger UI 底部版权信息
    • 启动应用
    • 🚀 获取笔记

Spring Boot 应用结合 Knife4j 进行 API 分组授权管理配置

在现代的微服务架构中,API 文档和授权管理是不可或缺的一部分。Knife4j 是一个基于 Swagger 的增强解决方案,它提供了更丰富的功能和更好的用户体验。本文将介绍如何在 Spring Boot 应用中集成 Knife4j,并进行 API 分组和授权管理配置。

😭写在前面

兄弟们,最近Gitee账号被无缘无故封号了,和客服博弈了好几个回合都没有解封,有没有兄弟知道怎么解决的啊。
招呼都打一声账号就没了,就说我打广告了。bestwishes0203全系下线了,xiaohelikesleep是我的新账号。
还是得继续学习,继续写代码啊,我太想进步了。

环境准备

首先,确保你的项目中已经添加了 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 的相关属性,包括 API 文档的路径、分组配置以及Knife4j的特定设置:

springdoc:swagger-ui:path: /swagger-ui.htmltags-sorter: alphaoperations-sorter: orderapi-docs:path: /v3/api-docsgroup-configs:- group: '通用模块'paths-to-match: '/**'packages-to-scan: com.example.springboot.common.controller- group: '系统模块'paths-to-match: '/**'packages-to-scan: com.example.springboot.system.controller- group: '用户模块'paths-to-match: '/**'packages-to-scan: com.example.springboot.user.controllerknife4j:enable: truesetting:language: zh_cnenable-footer-custom: truefooter-custom-content: "Apache License 2.0 | Copyright xiao he like sleep"basic:enable: trueusername: usernamepassword: password

配置 Swagger OpenAPI

在 Spring Boot 应用中,你需要定义一个配置类来配置 OpenAPI 的信息:

@Configuration
public class SwaggerConfig {@Beanpublic OpenAPI springShopOpenAPI() {return new OpenAPI().info(new Info().title("API管理系统").contact(new Contact().name("xiaohelikesleep").email("2109664977@qq.com")).description("API管理系统文档").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 底部版权信息

通过 knife4j.setting.enable-footer-custom 属性,你可以自定义 Swagger UI 底部的版权信息:

knife4j:enable: truesetting:language: zh_cnenable-footer-custom: truefooter-custom-content: "Apache License 2.0 | Copyright xiao he like sleep"basic:enable: trueusername: 1password: 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 {@Beanpublic OpenAPI openAPI() {return new OpenAPI().info(new Info().title("订单服务接口文档").version("1.0").description("订单服务相关接口"));}@Beanpublic GroupedOpenApi orderApi() {return GroupedOpenApi.builder().group("订单服务").pathsToMatch("/order/**").packagesToScan("com.example.order.controller").build();}
}

🚀 获取笔记

  • 后端笔记:后端笔记链接
  • 前端笔记:前端笔记链接

如果对你有帮助,点赞👍、收藏💖、关注🔔是我更新的动力!👋🌟🚀

http://www.xdnf.cn/news/16951.html

相关文章:

  • 【世纪龙科技】汽车自动变速器拆装虚拟实训软件
  • 国产化低代码平台如何筑牢企业数字化安全底座
  • Go语言 并发安全sync
  • Linux 磁盘管理
  • 如何选择一个容易被搜索引擎发现的域名?
  • 从零开始的云计算生活——项目实战
  • Perl 面向对象编程深入解析
  • 京东商品销量数据如何获取?API接口调用操作详解
  • AWS VPC Transit Gateway 可观测最佳实践
  • [特殊字符] Ubuntu 下 MySQL 离线部署教学(含手动步骤与一键脚本)
  • Java 课程,每天解读一个简单Java之正整数分解质因数
  • 在安卓中使用 FFmpegKit 剪切视频并添加文字水印
  • 05.Redis 图形工具RDM
  • io_getevents 和 io_pgetevents 系统调用及示例
  • 论文阅读:DMD蒸馏 | One-step Diffusion with Distribution Matching Distillation
  • SaProt 模型部署与运行教程
  • 【AI】文档理解
  • ZStack Cloud 5.3.40正式发布
  • 大模型能力测评(提示词请帮我把这个项目改写成为python项目)
  • 人工智能之数学基础:几何型(连续型)随机事件概率
  • 深度学习周报(7.28~8.3)
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(七级)
  • 抖音全新推荐大模型RankMixer
  • p2p打洞
  • 后端研发转型爬虫实战:Scrapy 二开爬虫框架的避坑指南
  • [2025ICCV-目标检测方向]DuET:通过无示例任务算术进行双增量对象检测
  • 记一次v-if和key错误使用,导致vue2的内存爆炸修复!
  • 十八、Javaweb-day18-前端实战-登录
  • 11.消息队列
  • 2. 字符设备驱动