SpringBoot3.x整合Knife4j接口文檔
記錄下SpringBoot3.x整合Knife4j接口文檔時的步驟以及開發(fā)中的常見報錯問題。
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 {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("接口文檔標題")
.version("1.0.0")
.description("接口描述")
.contact(new Contact().name("開發(fā)者").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"));
}
}

3.用法細節(jié)
- 如果不想全部controller都掃描到,可以用
@Hidden注解隱藏不顯示 - 在controller類名上加
@Tag(name = "xxx"),具體方法名加@Operation(summary = "xxx") - 配置文檔需登錄后訪問
在application.yml配置如下:
knife4j:
enable: true
basic:
enable: true
username: xxx
password: xxx

原UI頁面顯示
在application.yml配置如下:
springdoc:
swagger-ui:
# 訪問原UI界面:ip:port/swagger-ui/index.html
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
api-docs:
path: /v3/api-docs
group-configs:
- group: 'default'
paths-to-match: '/**'
packages-to-scan: com.base.controller

附錄:可能會遇到問題
問題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.ico 到 static/ 目錄。(如果你不關心這個 favicon,可以忽略這個異常)

問題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 無內容
}
}
到此這篇關于SpringBoot3.x整合Knife4j接口文檔的文章就介紹到這了,更多相關SpringBoot3.x整合Knife4j內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺析如何利用Spring AI構建一個簡單的問答系統(tǒng)
Spring AI是Spring生態(tài)系統(tǒng)的最新成員,旨在簡化AI服務與Spring應用的集成過程,本文小編就來和大家簡單介紹一下如何利用Spring AI構建一個簡單的問答系統(tǒng)吧2025-05-05
淺談Java高并發(fā)解決方案以及高負載優(yōu)化方法
這篇文章主要介紹了淺談Java高并發(fā)解決方案以及高負載優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
一文搞懂spring boot本地事務@Transactional參數(shù)
這篇文章主要介紹了spring boot本地事務@Transactional參數(shù)詳解,本文通過示例代碼圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10
最簡單的在IntelliJ IDEA導入一個本地項目教程(圖文)
這篇文章主要介紹了最簡單的在IntelliJ IDEA導入一個本地項目教程(圖文),文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
Java使用wait/notify實現(xiàn)線程間通信上篇
wait()和notify()是直接隸屬于Object類,也就是說所有對象都擁有這一對方法,下面這篇文章主要給大家介紹了關于使用wait/notify實現(xiàn)線程間通信的相關資料,需要的朋友可以參考下2022-12-12
淺談Java中浮點型數(shù)據(jù)保留兩位小數(shù)的四種方法
今天在進行開發(fā)的過程中遇到了一個小問題,是關于如何將double類型的數(shù)據(jù)保留兩位小數(shù)。具有一定的參考價值,本文就詳細的介紹一下2021-09-09

