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

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.dtcms.com/a/314921.html

相关文章:

  • sqli-labs:Less-24关卡详细解析
  • 挑战指针题
  • TCP(2)
  • IP 成长的破局之道:从停滞到突破的核心逻辑
  • MyBatis高效查询:简化JDBC开发实战
  • Python 虚拟环境深入浅出全指南
  • 为流媒体时代而生的云服务:Akamai 推出 Accelerated Compute 加速计算服务
  • 在 Maven 多模块项目中统一管理配置文件
  • 8.4 Java Web(Maven P50-P57)
  • 【web应用】为什么 子模块已经删除,但 Maven 依赖项仍然报错?
  • python采集拍立淘按图搜索API接口,json数据参考
  • maven install和package的区别
  • AI绘图-Stable Diffusion-WebUI的基本用法
  • 安卓开发--ConstraintLayout(约束布局)
  • 5天挑战网络编程 -DAY1(linux版)
  • 二十年代深度立体匹配的进化与前沿综述
  • 咖啡参考基因组
  • 机器学习 入门——决策树分类
  • FreeRTOS源码分析四:时钟中断处理响应流程
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • 【C#】Blazor基本应用
  • ICCV2025 Tracking相关paper汇总和解读(19篇)
  • Matlab(2)
  • Maven配置,Idea集成Maven_依赖引入,Idea生成单元测试
  • 《AI Agent工程师(初级)》
  • ubuntu24.01安装odoo18
  • gdb print设置技巧,离线查看复杂结构体和数组变量内容,展开多层嵌套的结构体的方法
  • 【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式
  • C + +
  • 宝塔运维实战:CentOs7启动PHP7.4失败