SpringBoot3.x整合Knife4j接口文檔
記錄下SpringBoot3.x整合Knife4j接口文檔時(shí)的步驟以及開發(fā)中的常見報(bào)錯(cuò)問題。
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("接口文檔標(biāo)題") .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("項(xiàng)目主頁") .url("https://github.com/xxx/xxx")); } }
3.用法細(xì)節(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
附錄:可能會(huì)遇到問題
問題1
控制臺(tái)提示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
加一個(gè) favicon.ico
到 static/
目錄。(如果你不關(guān)心這個(gè) favicon,可以忽略這個(gè)異常)
問題2
控制臺(tái)提示.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/
路徑,返回空響應(yīng)或 404(推薦給控制臺(tái)干凈控)
@RestController public class WellKnownController { @RequestMapping("/.well-known/**") public ResponseEntity<Void> handleUnknownWellKnown() { return ResponseEntity.notFound().build(); // 返回 404,或改為返回 204 無內(nèi)容 } }
到此這篇關(guān)于SpringBoot3.x整合Knife4j接口文檔的文章就介紹到這了,更多相關(guān)SpringBoot3.x整合Knife4j內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot實(shí)現(xiàn)獲取當(dāng)前服務(wù)器IP及當(dāng)前項(xiàng)目使用的端口號(hào)Port
這篇文章主要介紹了springboot實(shí)現(xiàn)獲取當(dāng)前服務(wù)器IP及當(dāng)前項(xiàng)目使用的端口號(hào)Port方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12在windows環(huán)境下安裝jdk8、jdk9、jdk11、jdk12并自由切換
這篇文章主要介紹了在windows環(huán)境下安裝jdk8、jdk9、jdk11、jdk12并自由切換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Idea自定義方法注釋模板的教程詳解(去param括號(hào)、return全類名)
這篇文章主要介紹了Idea自定義方法注釋模板(去param括號(hào)、return全類名),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Java Validation Api實(shí)現(xiàn)原理解析
這篇文章主要介紹了Java Validation Api實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java?注解@PostConstruct的原理及最佳使用場(chǎng)景分析
@PostConstruct?是?Java?中非常實(shí)用的注解,尤其是在?Spring?等框架中,它使得開發(fā)者可以方便地在?Bean?初始化后執(zhí)行額外的操作,本文給大家介紹@PostConstruct?的原理、使用場(chǎng)景及最佳實(shí)踐,感興趣的朋友一起看看吧2025-04-04