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

SpringBoot3.x整合Knife4j接口文档

记录下SpringBoot3.x整合Knife4j接口文档时的步骤以及开发中的常见报错问题。

1.依赖

<!--        接口文档,访问地址:ip:port/doc.html-->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.4.0</version>
</dependency>

2.配置

package com.base.config;import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class SwaggerConfig {@Beanpublic OpenAPI customOpenAPI() {return new OpenAPI().info(new Info().title("接口文档标题").version("1.0.0").description("接口描述").contact(new Contact().name("开发者").email("dev@example.com")).license(new License().name("Apache 2.0").url("https://www.apache.org/licenses/LICENSE-2.0.html"))).externalDocs(new ExternalDocumentation().description("项目主页").url("https://github.com/xxx/xxx"));}
}

image-20250628121047365

3.用法细节

  • 如果不想全部controller都扫描到,可以用@Hidden注解隐藏不显示
  • 在controller类名上加@Tag(name = "xxx"),具体方法名加@Operation(summary = "xxx")
  • 配置文档需登录后访问

application.yml配置如下:

knife4j:enable: truebasic:enable: trueusername: xxxpassword: xxx

image-20250628120355691

  • 原UI页面显示

application.yml配置如下:

springdoc:swagger-ui:
#    访问原UI界面:ip:port/swagger-ui/index.htmlpath: /swagger-ui.htmltags-sorter: alphaoperations-sorter: alphaapi-docs:path: /v3/api-docsgroup-configs:- group: 'default'paths-to-match: '/**'packages-to-scan: com.base.controller

image-20250628121019994

附录:可能会遇到问题

问题1

控制台提示favicon.ico未找到

org.springframework.web.servlet.resource.NoResourceFoundException: No static resource favicon.ico.at org.springframework.web.servlet.resource.ResourceHttpRequestHandler.handleRequest(ResourceHttpRequestHandler.java:585)at 

解决1

加一个 favicon.icostatic/ 目录。(如果你不关心这个 favicon,可以忽略这个异常)

image-20250628110509058

问题2

控制台提示.well-known/appspecific/com.chrome.devtools.json未找到

2025-06-28T10:40:49.872+08:00  WARN 9924 --- [nio-8888-exec-4] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.web.servlet.resource.NoResourceFoundException: No static resource .well-known/appspecific/com.chrome.devtools.json.]
org.springframework.web.servlet.resource.NoResourceFoundException: No static resource .well-known/appspecific/com.chrome.devtools.json.at org.sprin

解决2

拦截 .well-known/ 路径,返回空响应或 404(推荐给控制台干净控)

@RestController
public class WellKnownController {@RequestMapping("/.well-known/**")public ResponseEntity<Void> handleUnknownWellKnown() {return ResponseEntity.notFound().build(); // 返回 404,或改为返回 204 无内容}
}
http://www.lryc.cn/news/576675.html

相关文章:

  • cocos creator 3.8 - 精品源码 - 六边形消消乐(六边形叠叠乐、六边形堆叠战士)
  • 阿里 Qwen3 模型更新,吉卜力风格get
  • (五)神经网络
  • 【数据标注师】线标注
  • Linux软连接和硬连接
  • 复杂驱动开发-TLE9471的休眠流程与定时唤醒
  • 断路器、空气开关、漏电保护器
  • 【扩欧应用】同余方程
  • 概述-4-通用语法及分类
  • 领域驱动设计(DDD)【21】之值对象的优势
  • WebRTC(十二):DTLS
  • PowerBI 柱状图显示MoM销量环比示例,以及解决相同列值时设置柱子颜色的问题
  • 【转】PostgreSql的镜像地址
  • 一个简单测试Deepseek吞吐量的脚本,国内环境可跑
  • QTreeWidget 简单使用
  • web自动化测试常见函数
  • 西门子S7-200 SMART PLC:小型自动化领域的高效之选
  • 华为云鸿蒙应用入门级开发者认证 实验部分题目及操作步骤
  • 基于Uniapp+SpringBoot+Vue 的在线商城小程序
  • AI 在金融领域的落地实践:从智能风控到量化交易的技术突破与案例解析
  • 【Docker基础】Docker容器管理:docker stats及其参数详解
  • 使用asyncio构建高性能网络爬虫
  • 华为云Flexus+DeepSeek征文|基于Dify构建AI资讯语音播报工作流
  • Python pyserial库【串口通信】全面讲解
  • 从傅立叶级数到傅里叶变换和离散傅里叶变换及其逆变换:FS FT DFT IDFT
  • 华为云Flexus+DeepSeek征文 | 华为云ModelArts Studio实战指南:创建高效的AingDesk知识库问答助手
  • Java锁机制知识点
  • Java安装与使用教程
  • FPGA设计的上板调试
  • zookeeper Curator(2):Curator的节点操作