SpringDoc + Knife4j的配置参考示例

SpringDoc【使用详解】 阅读详情

以下是 Spring Boot 3 项目中 application.yml 文件中 springdoc-openapi 和 knife4j 的完整、详细配置示例,每个配置项都带有中文注释说明其作用和推荐值,适用于企业级生产项目。


✅ SpringDoc OpenAPI + Knife4j 完整配置详解(application.yml)

# ==================== SpringDoc OpenAPI 核心配置 ====================
springdoc:
  # 是否启用 OpenAPI 3 接口(生产环境建议关闭)
  api-docs:
    enabled: true                    # 是否启用 /v3/api-docs 接口,默认 true
    path: /v3/api-docs               # OpenAPI JSON 接口路径,默认 /v3/api-docs
    groups:
      enabled: false                 # 是否启用分组(多版本 API 时使用)

  # Swagger UI 原生界面配置(Knife4j 会覆盖大部分,但保留兼容)
  swagger-ui:
    enabled: true                    # 是否启用原生 Swagger UI,默认 true
    path: /swagger-ui.html           # 原生 UI 访问路径(Knife4j 使用 /doc.html)
    disable-swagger-default-url: true # 禁用默认 Petstore 示例 URL
    supported-submit-methods:        # 支持的提交方法(调试用)
      - get
      - post
      - put
      - delete
    tags-sorter: alpha               # 标签排序:alpha=字母序,method=方法序
    operations-sorter: method        # 操作排序:alpha=字母序,method=请求方法序
    try-it-out-enabled: true         # 是否启用 "Try it out" 调试按钮
    filter: false                    # 是否显示过滤框(按标签过滤)
    syntax-highlight:                # 语法高亮
      activated: true
      theme: atom-one-dark           # 高亮主题:agate, arta, atom-one-dark 等

  # 默认媒体类型(影响 Content-Type 和 Accept)
  default-produces-media-type: application/json
  default-consumes-media-type: application/json

  # 包扫描配置(默认扫描所有 @RestController)
  packages-to-scan:                # 指定扫描的包(可选,用于多模块项目)
    - com.example.demo.controller
  packages-to-exclude:             # 排除的包(如内部接口)
    - com.example.demo.internal

  # 路径配置(可忽略某些路径)
  paths-to-match:                  # 只匹配这些路径(默认全部)
    - /api/**
  paths-to-exclude:                # 排除这些路径(如健康检查)
    - /actuator/**
    - /internal/**

  # 全局操作参数(所有接口自动添加的参数,如 token、traceId)
  global-parameters:
    - name: Authorization
      description: "Bearer Token 认证"
      in: header
      required: false
      schema:
        type: string
      example: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

# ==================== Knife4j 增强配置(企业级功能) ====================
knife4j:
  # 是否启用 Knife4j(生产环境设为 false)
  enable: true

  # 生产环境模式(开启后屏蔽调试、导出等功能,即使 enable=true)
  production: false

  # 基础认证(访问文档需登录)
  basic-auth:
    enable: false                  # 是否开启基础认证
    username: admin                # 认证用户名
    password: 123456               # 认证密码

  # 界面设置(UI 个性化)
  setting:
    # 语言设置
    language: zh-CN                # 界面语言:zh-CN(中文),en-US(英文)

    # 缓存设置
    cache: true                    # 是否缓存参数(刷新页面不丢失调试参数)

    # 页脚设置
    enableFooter: false            # 是否显示页脚
    enableFooterCustom: false      # 是否启用自定义页脚
    footerCustomContent: "© 2025 企业 API 文档系统" # 自定义页脚内容

    # 搜索功能
    enableSearch: true             # 是否启用搜索框(按接口名/描述搜索)

    # OpenAPI 规范按钮
    enableOpenApi: true            # 是否显示 "OpenAPI" 按钮(查看原始 JSON)

    # Schemas 模型显示
    enableSwaggerModels: true      # 是否显示 "Schemas" 标签页(DTO/VO 结构)

    # 调试功能
    enableAfterScript: true        # 是否启用 AfterScript(调试后执行脚本)
    enableDocumentManage: true     # 是否启用文档管理(离线文档、导出等)
    enableDynamicParameter: true   # 是否启用动态参数(调试时动态添加参数)

    # 主题与样式
    theme: default                 # 主题:default, dark, material, layui 等
    showCode: true                 # 是否显示状态码说明

    # 分组设置(多版本 API 时使用)
    enableGroup: false             # 是否启用分组(需配合 springdoc.groups)

  # 文档导出设置(企业常用)
  documents:
    create:
      # 导出 HTML(单页)
      - group: "用户服务"
        name: "用户管理API文档"
        locations: classpath:markdown/user.md # 自定义 Markdown 描述文件
        swaggerUiLink: true        # 是否显示跳转到 Swagger UI 的链接
      # 导出 Word(需额外依赖)
      - group: "订单服务"
        name: "订单API文档"
        type: word                 # 导出类型:html, markdown, word, openapi

  # CORS 配置(如前端独立部署)
  cors:
    enable: false
    allow-credentials: true
    allowed-headers: "*"
    allowed-methods: "*"
    allowed-origins: "*"

  # 网关聚合配置(Spring Cloud Gateway 项目使用)
  gateway:
    discover:
      enabled: false               # 是否启用服务发现(自动聚合微服务)
    strategies:
      - service-name: user-service # 下游服务名
        context-path: /user        # 网关路由前缀
      - service-name: order-service
        context-path: /order

  # 安全拦截(自定义权限控制)
  secure:
    enable: false                  # 是否启用安全拦截
    roles:                         # 允许访问的角色(需集成 Spring Security)
      - ROLE_ADMIN
      - ROLE_DEV

# ==================== 可选:日志与监控 ====================
logging:
  level:
    io.swagger: WARN              # 降低 Swagger 日志级别
    org.springdoc: WARN

management:
  endpoints:
    web:
      exposure:
        include: health,info      # 暴露健康检查端点(排除在 API 文档外)

✅ 配置项分类说明

一、springdoc 配置作用

配置项作用推荐值
api-docs.enabled是否生成 OpenAPI JSON 接口开发环境 true,生产环境 false
api-docs.pathOpenAPI JSON 路径/v3/api-docs(默认)
swagger-ui.path原生 Swagger UI 路径/swagger-ui.html(Knife4j 用 /doc.html)
packages-to-scan指定扫描 Controller 包多模块项目推荐指定
paths-to-exclude排除某些路径(如 Actuator)必须排除 /actuator/**
global-parameters全局参数(如 Token)推荐添加 Authorization

二、knife4j 配置作用

配置项作用推荐值
enable是否启用 Knife4j UI开发环境 true,生产环境 false
production生产模式(屏蔽敏感功能)生产环境 true
basic-auth.enable是否开启登录认证企业内网可开启
setting.language界面语言zh-CN(中文)
setting.cache是否缓存调试参数true(提升体验)
setting.theme界面主题default 或 dark
setting.enableDocumentManage是否启用文档导出true(企业推荐)
documents.create自定义导出文档按需配置 HTML/Word
gateway.discover.enabled是否聚合微服务网关项目设为 true

✅ 生产环境推荐配置(application-prod.yml)

springdoc:
  api-docs:
    enabled: false   # 关闭 OpenAPI 接口
  swagger-ui:
    enabled: false   # 关闭原生 UI

knife4j:
  enable: false      # 关闭 Knife4j
  production: true   # 开启生产模式(双重保险)

或通过启动参数禁用:

java -jar app.jar --springdoc.api-docs.enabled=false --knife4j.enable=false

✅ 开发环境推荐配置(application-dev.yml)

springdoc:
  api-docs:
    enabled: true
  swagger-ui:
    enabled: true

knife4j:
  enable: true
  production: false
  basic-auth:
    enable: false    # 开发环境可关闭认证
  setting:
    language: zh-CN
    cache: true
    enableDocumentManage: true

✅ 多环境激活配置(application.yml)

spring:
  profiles:
    active: dev      # 默认激活开发环境

---
spring:
  config:
    activate:
      on-profile: dev
# 引用 application-dev.yml 内容

---
spring:
  config:
    activate:
      on-profile: prod
# 引用 application-prod.yml 内容

✅ 配置验证

启动项目后访问:

  • 🔹 Knife4j UI:http://localhost:8080/doc.html
  • 🔹 原生 Swagger UI:http://localhost:8080/swagger-ui.html
  • 🔹 OpenAPI JSON:http://localhost:8080/v3/api-docs

检查:

✅ 界面是否为 Knife4j 增强风格
✅ 是否按配置排除了 Actuator 路径
✅ 是否支持中文、缓存、导出等功能
✅ 生产环境是否正确关闭


✅ 总结:企业级配置最佳实践

场景配置策略
开发环境开启所有功能,中文界面,参数缓存,文档导出
测试环境开启 Knife4j,关闭原生 UI,可开启 Basic Auth
生产环境完全关闭 API 文档(enable=false),或仅限内网 IP 访问
微服务网关开启 gateway.discover.enabled=true,聚合下游服务
安全要求高开启 basic-auth 或集成 Spring Security 权限控制

📌 提示:

  • 配置不是越多越好,根据团队和项目需求调整。
  • 生产环境务必关闭或保护 API 文档,避免信息泄露。
  • 使用 @Profile 或外部配置中心(Nacos/Consul)管理多环境配置。

通过以上详细配置,你可以在 Spring Boot 3 项目中安全、灵活、高效地使用 SpringDoc + Knife4j,打造专业级 API 文档系统!

SpringBoot入门到精通-三步整合knife4j knife4j的比较好看 Knife4j的前身是swagger-bootstrap-ui,前身swagger-bootstrap-ui是一个纯swagger-ui的ui皮肤项目 一开始项目初衷是为了写一个增强版本的swagger的前端ui,但是随着项目的发展,面对越来越多的个性化需求,不得不编写后端Java代码以满足新的需求,在swagger-bootstrap-ui的1.8.5~1.9.6版本之间,采用的是后端Java代码和Ui都混合在一个Jar包里面的方式提供给开发者使用.这种方式虽说对于集成swa 阅读详情

相关推荐

RC滤波电路工作原理:【带图+公式计算】

容抗Xc和电容C成反比,和频率f也成反比,C越大,交流电容易通过电容,说明电容量大,电容的阻碍作用小;交流电的频率高,交流电也容易通过电容,说明频率高,电容的阻碍作用也小。我们可以看到,一个2V的纹波,经常RC电路后,幅值下降到mv级别,基本可以忽略不计,这就是RC滤波电路的工作原理。一个频率为1Khz的信号,通过一个容值为0.1uf的电容,计算电容对该信号产生的阻抗。将RC滤波器电路中的电阻,取值为1KΩ,电容取值为0.47uf,纹波幅值为2V。从公式1可以看到,Xc越大,Vout值就越接近Vin的值。

weixin_66299220的博客 2万+

【超详细】springboot + springdoc-openapi + knife4j 集成案例

java库有助于使用 spring boot 项目自动生成 API 文档。springdoc-openapi通过在运行时检查应用程序以根据 spring 配置、类结构和各种注释推断 API 语义来工作。自动生成 JSON/YAML 和 HTML 格式 API 的文档。可以使用 swagger-api 注释通过注释来完成此文档。该库支持:OpenAPI3Swagger-uiOAuth 2GraalVM 原生镜像Knife4j是一个集Swagger2和OpenAPI3为一体的增强解决方案。

BASK2312的博客 9361

工业自动化中气动夹爪选型、调试与维护全流程实战解析

在工业自动化领域,气动执行元件是实现精准抓取与搬运的基础。其工作原理是通过压缩空气驱动气缸,转化为直线或旋转运动,从而控制夹爪的开合。这类技术因其结构简单、响应快速、成本低廉及维护方便,在自动化产线中具有极高的技术价值,是实现高效、可靠物料搬运的核心单元。其典型应用场景涵盖电子装配、汽车制造、食品包装等行业的上下料、分拣与定位工序。本文以工业自动化中常见的二指平行气动夹爪(常被工程师代号化为“Gripper-A”)为例,深入剖析其从硬件选型、气动系统集成到程序逻辑联锁的完整工程实践。内容聚焦于夹持力计算中惯

weixin_42629671的博客 365

springdoc+knife4j

添加group分组。

学长的猫的博客 3604

接口自动化测试如何做?测试老鸟总结,接口测试数据构造大全......

接口参数的数据获取:接口文档:接口文档通常会包含接口需要的请求参数和返回结果的格式、类型等信息;测试用例设计:根据测试用例设计的需求,可以确定需要哪些请求参数以及期望的响应结果;业务数据:从实际业务场景中获取数据,以确保测试数据的真实性和代表性;数据库:从数据库中获取数据,作为接口测试的输入参数;随机数据生成器:通过随机数据生成器生成测试数据,以增加测试用例的多样性和覆盖率。在选择数据来源时,需要根据具体情况进行选择。如果有可靠的接口文档,可以直接从文档中获取请求参数和预期结果;

798

Windows平台无人机仿真:从零搭建SITL环境与QGC联调

本文详细指导了在Windows平台上从零搭建无人机软件在环(SITL)仿真环境,并与QGroundControl(QGC)进行联调的完整流程。通过使用Cygwin工具链,开发者可以在没有实体硬件的情况下,模拟运行ArduPilot飞控,并通过MAVLink协议连接QGC地面站进行全功能测试,为无人机软件开发提供了一个安全、经济的虚拟沙盒环境。

weixin_29239279的博客 407

SpringBoot3中Swagger整合knife4j和springdoc的配置说明

springboot3开始javax包改成了jakarta,而swagger-oas等包中依然使用的是javax所以报错。另外springfox已经过时了,两年没更新了,并且不支持OpenAPI3 标准,而SpringBoot3只支持OpenAPI3规范,所以要迁移到springdocKnife4J是一款基于Swagger快速生成API文档和调试平台的开源工具,它可以轻松地将Swagger规范转换成易于阅读的文档,并支持在线测试API。

m0_74055560的博客 1万+

MacTeX+TeXstudio:Macbook配置本地Latex看这一篇就够了

这个博客记录本人在MacBook上配置本地Latex的流程,其中选择的编译环境为MacTeX,编辑器为TeXstudio。采用的原因主要两点:一个是本人配置的原因主要是用来撰写毕业论文,希望能够尽可能简化设置流程,专注内容表达;第二是由于本人还有一个windows系统的笔记本,想要编辑器在专注写作体验的同时在两个系统上能够都适配,从而减少切换效率,故选择此组合。这篇文章介绍并详细记录了本人的安装流程,有相同需求的同志也可借鉴。

Katherine-XY的博客 6978

SpringBoot整合knife4j(快速入门超详细版)

在日常开发中,写接口文档是我们必不可少的,而Knife4j就是一个接口文档工具,可以看作是Swagger的升级版,但是界面比Swagger更好看,功能更丰富早期,swagger-boostrap-ui是1.x版本,如今swagger-bootsrap-ui到2.x,同时也更改名字Knife4j,适用于单体和微服务项目。怎么样,是不是特别的方便和简单~

weixin_47316183的博客 4万+

uniapp - H5人脸识别认证与活体检测功能(纯前端免费方案+微信sdk人脸识别)完整源码,微信公众号网页/h5端人脸识别功能人脸核身(微信方案提供后端spring boot+thinkphp源码

uniapp实现人脸认证,uniAPP h5手机拍照+人脸识别,免费人脸识别插件,前端人脸识别解决方案,uniapp H5人脸识别带前后摄像头,人脸识别在H5页面进行采集,微信公众号H5人脸核身,H5端人脸识别功能实现,免费h5人脸识别插件方案,微信公众号H5网页实现人脸识别,uniapp人脸监测,uniapp人脸生物监测,使用uniapp开发H5人脸采集功能/人脸识别功能,uniapp项目—h5端人脸采集功能实现,uniapp vue3人脸核身,H5活体检测认证,人脸认证张嘴摇摇头指引动作,人脸核身 微信

🏆 前端领域优质创作者 3808

CAN总线入门(硬件部分)

这篇博客讲述CAN总线入门知识。

记得诚 1万+

SpringBoot2整合Knife4j 4.0

SpringBoot2整合Knife4j 4.0简略步骤

m0_65771851的博客 2809

Python爬虫经典案例第67篇:社交媒体平台爬取:Twitter数据采集实战

Twitter(现更名为X)是全球最具影响力的社交媒体平台之一,拥有超过3.3亿月度活跃用户。作为一个实时信息传播平台,Twitter上的数据涵盖了新闻、政治、娱乐、科技等各个领域,具有极高的研究价值:本文将深入探讨Twitter数据采集的技术方案,包括官方API调用、网页爬取和浏览器自动化三种方式。Twitter采用现代化的微服务架构,主要特点包括:Twitter作为全球最大的社交媒体平台,拥有完善的反爬机制:在开始爬取前,需要明确合法的数据采集方式:重要提示:未经授权爬取Twitter数据可能违反服务条

2201_76125261的博客 658

knife4j、swagger、springdoc 返回接口分组排序问题

解决knife4j返回接口分组排序问题

Stronger的博客 9008

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

基于SpringBoot3从零配置SpringDoc

详细讲解了如何使用 SpringDoc 生成应用的 API 文档。

???? 4027

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

springboot 接口文档工具集成案例:springboot + springdoc-openapi + knife4j 集成案例

springdoc-openapijava库有助于使用 spring boot 项目自动生成 API 文档。springdoc-openapi通过在运行时检查应用程序以根据 spring 配置、类结构和各种注释推断 API 语义来工作。自动生成 JSON/YAML 和 HTML 格式 API 的文档。可以使用 swagger-api 注释通过注释来完成此文档。OpenAPI3Swagger-uiOAuth 2GraalVM 原生镜像。

学亮编程手记 2301

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spring Boot 3 接口文档自动化:SpringDoc + Knife4j 终极指南

Swagger和Knife4j是用于自动化生成RESTful API接口文档的工具。Swagger通过代码注解自动生成交互式API文档,而Knife4j作为其增强版提供了更美观的UI界面。文章介绍了接口文档的必要性,详细说明了Swagger(SpringDoc OpenAPI)和Knife4j的使用方法,包括依赖引入、注解配置和页面美化技巧。针对SpringBoot3.5与Knife4j的兼容性问题,还提供了解决方案。

2402_83593125的博客 748

Swagger与Knife4j知识概括

--

weixin_41005188的博客 3333

Springboot3 + knife4j(springdoc) 框架整合以及Oauth2登录校验配置

原本使用的是springfox,自Springboot3开始,knife4j引入了springdoc。

叽叽叽叽叽叽叽叽叽叽叽叽叽叽叽叽 2224

Springboot 2.7 集成 Swagger 增强版接口框架 Knife4j 4.3 + springdoc OpenApi 3.0

Swagger 作为一款服务端接口文档自动生成框架,早已深入人心,并且在市场上得到了广泛的应用。然而,Swagger 3.0 也就是 OpenApi 3.0 规范发布之后便停止了更新维护,出道就是巅峰。Knife4j 作为 Swagger 的增强版,是对 Swagger UI 做了优化,同时还有很多增强的功能。伴随着 Swagger 3.0 的停止更新,如今 Knife4j 从4.0开始已经逐渐使用 Springdoc 作为 swagger 的替代。

Mrqiang9001 1万+

springboot3整合knife4j详细版,包会!(不带swagger2玩)

springboot3在整合swagger2或者3时均不太好使,而且swagger的默认ui页面真的一言难尽,官方现在推荐使用springdoc-openapi集成接口文档,但是经过测试一些注解个性化文档时存在不好使的情况,而且ui界面依然感觉不好看。本文详细记录了knife4j集成接口文档的详细使用步骤,配置详解以及注解详解。绝对是up亲身测验过的,绝对好用!!!百度了很多内容,踩了很多坑后的整理版。

qq_51774011的博客 8502

Swagger3.0(Springdoc)日常使用记录

本文并不是Swagger的使用教程,只是记录一下本人的操作,感兴趣的可以看下。

一个后端菜鸟的博客 1611

Springboot 3.x引入 SpringDoc OpenAPI Starter WebMvc UI 实现接口文档,解决 knife4j 文档请求异常:

苍穹外卖,knife4j 文档请求异常,SpringBoot, SpringDoc OpenAPI Starter WebMvc UI

H_Leonis的博客 961
上一篇: 一个完整、生产级、大厂风格的根 pom.xml 参考示例
下一篇: 2、cart-service 企业级代码目录结构规范
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值