Knife4j 4.0版本正式發(fā)布了!
該版本處理了近12個月以來Gitee、GitHub兩大平臺積壓的近300多個issue
同時也帶來了一些新的特性。
主要更新亮點:
- 統(tǒng)一各個組件版本號,使用Knife4j時開發(fā)者根據(jù)需要自行引用,artifactId發(fā)生了變化
-
支持
Spring Boot 3 -
兼容適配
springdoc-openapi底層框架,全面遷移到OpenAPI3的規(guī)范支持 - 針對OpenAPI2(Swagger)規(guī)范提供了優(yōu)化,開發(fā)者基于Spring Boot2版本可以無縫銜接
- Knife4j-Desktop組件架構升級重寫,新架構支持不同需求的OpenAPI規(guī)范進行聚合
- 提供官方Docker鏡像服務,基于Knife4j可方便在云服務上進行使用
- 官網(wǎng)文檔更新重寫
架構整理
為了以后Knife4j發(fā)展的可持續(xù)性,整個架構重新梳理,后續(xù)可以根據(jù)不同的需求,提供不同的服務

新的架構圖,有的是規(guī)劃(尚未實現(xiàn)),有的已經(jīng)實現(xiàn),歡迎大佬一起貢獻。
統(tǒng)一版本
在此次4.0版本中,統(tǒng)一各個版本,將OpenAPI2規(guī)范與OpenAPI3規(guī)范區(qū)分開,避免版本及規(guī)范混亂使用產(chǎn)生的誤解,使用者可以更清晰
需要注意,4.0版本artifactId發(fā)生了變化
目前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網(wǎng)關的項目可以引用該組件實現(xiàn)簡單的文檔聚合,參考https://gitee.com/xiaoym/knife4j/tree/dev/knife4j/knife4j-gateway-spring-boot-starter |
| knife4j-openapi2-spring-boot-starter | 基于 OpenAPI2 規(guī)范,在 Spring Boot < 3.0.0-M1 的單體架構下可以直接引用此 starter,該模塊包含了 Ui 部分,底層依賴 springfox-swagger 2.10.5 項目 |
| knife4j-openapi3-spring-boot-starter | 基于 OpenAPI3 規(guī)范,在 Spring Boot < 3.0.0-M1 的單體架構下可以直接引用此 starter,該模塊包含了 Ui 部分,底層基于 springdoc-openapi 項目 |
| knife4j-openapi3-jakarta-spring-boot-starter | 基于 OpenAPI3 規(guī)范,在 Spring Boot >= 3.0.0-M1 的單體架構下可以直接引用此 starter,該模塊包含了 Ui 部分,底層基于 springdoc-openapi 項目 |
開發(fā)者繼續(xù)使用Spring Boot 2以及OpenAPI2的規(guī)范
該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>
開發(fā)者使用Spring Boot 2以及OpenAPI3規(guī)范,那需要考慮在項目的注解上做遷移變更,并且knife4j 4.0版本針對3的規(guī)范底層遷移使用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
開發(fā)者使用Spring Boot 3以及使用OpenAPI3規(guī)范
可以使用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的規(guī)范中使用
Knife4j獨立服務工具架構升級
Knife4j在此次版本中針對聚合OpenAPI規(guī)范文檔提供了獨立的服務組件
整個架構重新設計,代碼重寫,并將該服務發(fā)布到Docker官方鏡像倉庫,支持不同配置中心中間件對接,數(shù)據(jù)+應用進行分離,OpenAPI的數(shù)據(jù)源可以輕松放到配置中心中,實現(xiàn)文檔的聚合
架構圖如下:

文檔
Knife4j新版本文檔采用新的模板,可以區(qū)分不同的版本,方便開發(fā)使用者PR貢獻或者查看

4.0版本的文檔作者正在瘋狂碼字中…….敬請期待.
示例程序
正是由于4.0的文檔還在輸出中,因此Knife4j在4.0新版本中也提供了不同版本的示例程序
示例如下:
- Spring Boot 2.x + OpenAPI2規(guī)范:knife4j-spring-boot27-demo
- Spring Boot 2.x +OpenAPI3規(guī)范:knife4j-springdoc-openapi-demo
- Spring Boot 3+ OpenAPI3規(guī)范:knife4j-spring-boot3-demo
整個4.0版本從確定開發(fā)方向以及迭代過程,感興趣的朋友可以通過該issue了解:
https://gitee.com/xiaoym/knife4j/issues/I5LIQZ
-
API
+關注
關注
2文章
2371瀏覽量
66772
原文標題:Knife4j 4.0正式發(fā)布,新征程!!!
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
TDK B32912H/J4 - B32918H/J4 EMI抑制薄膜電容器深度解析
ADC34J4x 系列產(chǎn)品核心信息總結
中科曙光助力紫東太初4.0大模型重磅發(fā)布
【正點原子】新一代經(jīng)濟型工業(yè)級核心板RK3506J開發(fā)板及資料發(fā)布
帶解碼器的 0.02-4.0 GHz 高隔離 SP4T 吸收開關 skyworksinc
Intel?賽揚J4105/J4125處理器嵌入式無風扇工控機
開源鴻蒙共建地圖4.0重磅發(fā)布
極簡以太彩光網(wǎng)絡解決方案4.0正式發(fā)布,“彩光”重構園區(qū)網(wǎng)絡極簡之道
中興通訊全新升級數(shù)字星云4.0
從3.0到4.0,華為ADS有哪些變化?
誠邁科技旗下智達誠遠發(fā)布峰昇OS4.0,全面支持艙駕一體及多計算平臺融合
全新STM32MP257開發(fā)板震撼發(fā)布!異核架構x接口豐富x邊緣AI,助力ARM嵌入式工業(yè)4.0應用!
AIWA HS-J202/HS-J202M/HS-J800維修手冊
MHP和慕尼黑LMU發(fā)布《2025年工業(yè)4.0晴雨表》
VIAVI Xgig4K-PCIe-X4-FL飛行引導插入器適用于PCIE4.0在被測設備和VIAVI協(xié)議分析儀機箱箱之間提供數(shù)據(jù)信號連接
Knife4j 4.0正式發(fā)布
評論