Knife4j 4.0版本正式發布了!
該版本處理了近12個月以來Gitee、GitHub兩大平臺積壓的近300多個issue
同時也帶來了一些新的特性。
主要更新亮點:
- 統一各個組件版本號,使用Knife4j時開發者根據需要自行引用,artifactId發生了變化
-
支持
Spring Boot 3
-
兼容適配
springdoc-openapi
底層框架,全面遷移到OpenAPI3
的規范支持 - 針對OpenAPI2(Swagger)規范提供了優化,開發者基于Spring Boot2版本可以無縫銜接
- Knife4j-Desktop組件架構升級重寫,新架構支持不同需求的OpenAPI規范進行聚合
- 提供官方Docker鏡像服務,基于Knife4j可方便在云服務上進行使用
- 官網文檔更新重寫
架構整理
為了以后Knife4j發展的可持續性,整個架構重新梳理,后續可以根據不同的需求,提供不同的服務
新的架構圖,有的是規劃(尚未實現),有的已經實現,歡迎大佬一起貢獻。
統一版本
在此次4.0版本中,統一各個版本,將OpenAPI2規范與OpenAPI3規范區分開,避免版本及規范混亂使用產生的誤解,使用者可以更清晰
需要注意,4.0版本artifactId
發生了變化
目前knife4j
的項目結構:
模塊名稱 | 說明 |
---|---|
knife4j-aggregation-spring-boot-starter | 基于 Servlet 體系下的聚合中間件 |
knife4j-core | 核心類,包含一些工具包、增強注解等 |
knife4j-dependencies | Knife4j 提供的 dependencies 工程,引入該工程后,knife4jspringfoxswaggerspringdoc-openapi 等版本號不用在獨自聲明 |
knife4j-openapi2-ui | 增強 UI 文檔,該包是一個 webjar,只包含前端代碼,支持 OpenAPI2 |
knife4j-openapi3-ui | 增強 UI 文檔,該包是一個 webjar,只包含前端代碼,支持 OpenAPI3 |
knife4j-gateway-spring-boot-starter | 基于Spring Cloud Gateway網關的項目可以引用該組件實現簡單的文檔聚合,參考https://gitee.com/xiaoym/knife4j/tree/dev/knife4j/knife4j-gateway-spring-boot-starter |
knife4j-openapi2-spring-boot-starter | 基于 OpenAPI2 規范,在 Spring Boot < 3.0.0-M1 的單體架構下可以直接引用此 starter,該模塊包含了 Ui 部分,底層依賴 springfox-swagger 2.10.5 項目 |
knife4j-openapi3-spring-boot-starter | 基于 OpenAPI3 規范,在 Spring Boot < 3.0.0-M1 的單體架構下可以直接引用此 starter,該模塊包含了 Ui 部分,底層基于 springdoc-openapi 項目 |
knife4j-openapi3-jakarta-spring-boot-starter | 基于 OpenAPI3 規范,在 Spring Boot >= 3.0.0-M1 的單體架構下可以直接引用此 starter,該模塊包含了 Ui 部分,底層基于 springdoc-openapi 項目 |
開發者繼續使用Spring Boot 2以及OpenAPI2的規范
該starter底層依然依賴springfox項目,版本2.10.5
可以使用knife4j-openapi2-spring-boot-starter
,maven坐標如下:
<dependency>
<groupId>com.github.xiaoymingroupId>
<artifactId>knife4j-openapi2-spring-boot-starterartifactId>
<version>4.0.0version>
dependency>
開發者使用Spring Boot 2以及OpenAPI3規范,那需要考慮在項目的注解上做遷移變更,并且knife4j 4.0版本針對3的規范底層遷移使用springdoc-openapi項目,放棄springfox3.0
可以使用knife4j-openapi3-spring-boot-starter
,maven坐標如下:
<dependency>
<groupId>com.github.xiaoymingroupId>
<artifactId>knife4j-openapi3-spring-boot-starterartifactId>
<version>4.0.0version>
dependency>
支持Spring Boot 3
開發者使用Spring Boot 3以及使用OpenAPI3規范
可以使用knife4j-openapi3-jakarta-spring-boot-starter
,maven坐標如下:
<dependency>
<groupId>com.github.xiaoymingroupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starterartifactId>
<version>4.0.0version>
dependency>
Knife4j配置屬性變化
此次Knife4j提供的Spring Boot Starter組件,增強配置屬性通過spring-boot-configuration-processor
工具自動生成spring-configuration-metadata.json
描述性文件,因此,不同于之前的版本,配置屬性會將之前的命名大寫全部轉為下劃線
Knife4j之前的增強配置屬性(老的
):
knife4j:
enable:true
#以setting配置為例
setting:
language:zh-CN
enableSwaggerModels:true
enableDocumentManage:true
Knife4j 4.0配置的增強屬性(新的
):
knife4j:
enable:true
setting:
custom-code:500
enable-footer-custom:false
footer-custom-content:我是自定義的Footer
springdoc-openapi項目增強適配
Knife4j之前的版本一直都是基于springfox項目提供了增強功能,此次4.0版本針對springdoc-openapi項目也提供了增強,Knife4j提供的增強功能可以無縫在OpenAPI3的規范中使用
Knife4j獨立服務工具架構升級
Knife4j在此次版本中針對聚合OpenAPI規范文檔提供了獨立的服務組件
整個架構重新設計,代碼重寫,并將該服務發布到Docker官方鏡像倉庫,支持不同配置中心中間件對接,數據+應用進行分離,OpenAPI的數據源可以輕松放到配置中心中,實現文檔的聚合
架構圖如下:
文檔
Knife4j新版本文檔采用新的模板,可以區分不同的版本,方便開發使用者PR貢獻或者查看
4.0版本的文檔作者正在瘋狂碼字中…….敬請期待.
示例程序
正是由于4.0的文檔還在輸出中,因此Knife4j在4.0新版本中也提供了不同版本的示例程序
示例如下:
- Spring Boot 2.x + OpenAPI2規范:knife4j-spring-boot27-demo
- Spring Boot 2.x +OpenAPI3規范:knife4j-springdoc-openapi-demo
- Spring Boot 3+ OpenAPI3規范:knife4j-spring-boot3-demo
整個4.0版本從確定開發方向以及迭代過程,感興趣的朋友可以通過該issue了解:
https://gitee.com/xiaoym/knife4j/issues/I5LIQZ
-
API
+關注
關注
2文章
1609瀏覽量
64008
原文標題:Knife4j 4.0正式發布,新征程!!!
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
從3.0到4.0,華為ADS有哪些變化?

MHP和慕尼黑LMU發布《2025年工業4.0晴雨表》

VIAVI Xgig4K-PCIe-X4-FL飛行引導插入器適用于PCIE4.0在被測設備和VIAVI協議分析儀機箱箱之間提供數據信號連接

DeepSeek4J開源:高效解決DeepSeek R1集成挑戰

J721S2/TDA4VE/TDA4VL/TDA4AL EVM用戶指南

J721S2、TDA4VE、TDA4AL、TDA4VL、AM68功耗估算工具

J784S4、TDA4VH、TDA4AH、TDA4VP、TDA4AP、AM69功耗估算工具用戶指南

深信服發布安全GPT4.0數據安全大模型
訊飛星火大模型4.0 Turbo正式發布
科大訊飛發布訊飛星火4.0 Turbo:七大能力超GPT-4 Turbo
訊飛星火大模型V4.0正式發布
VIAVI Xgig 4K16 PCI Express 4.0 協議分析儀平臺介紹

評論