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 工程,引入该工程后,knife4j\springfox\swagger\springdoc-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.xiaoymin</groupId> <artifactId>knife4j-openapi2-spring-boot-starter</artifactId> <version>4.0.0</version> </dependency>
开发者使用Spring Boot 2以及OpenAPI3规范,那需要考虑在项目的注解上做迁移变更,并且knife4j 4.0版本针对3的规范底层迁移使用springdoc-openapi项目,放弃springfox3.0
可以使用knife4j-openapi3-spring-boot-starter
,maven坐标如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-spring-boot-starter</artifactId> <version>4.0.0</version> </dependency>
支持Spring Boot 3
开发者使用Spring Boot 3以及使用OpenAPI3规范
可以使用knife4j-openapi3-jakarta-spring-boot-starter
,maven坐标如下:
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.0.0</version> </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
社区
感兴趣的朋友可以加群参与讨论贡献
关注公众号"Knife4j",点击菜单获取加群二维码
整个4.0版本从确定开发方向以及迭代过程,感兴趣的朋友可以通过该issue了解:
https://gitee.com/xiaoym/knife4j/issues/I5LIQZ

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
禅道18.0.beta2发布,支持跨分支/平台管理计划、版本、发布!
禅道18.0.beta2发布了!新版本支持跨分支/平台管理计划、版本、发布,方便您进行项目管理及规划;多分支/多平台产品支持创建孪生需求,您可以在每个不同的分支/平台上为需求规划任务并跟进进度。禅道客户端实现机器人指令会话机制,您可以发送指令给机器人“阿道”,它能够帮助您查询和操作禅道任务对象。机器人具有很高的可定制性,您也可以用PHP来编写自己的机器人应用。 为了给大家带来更好的体验,禅道18.0版本重点优化核心流程。因流程改动较大,beta版本中可能存在功能不太完善的地方,欢迎您提出宝贵的建议。升级前请务必做好数据备份。 持续优化,定期更新,禅道一直在路上 。 禅道本次发布数据如下: 新增功能点 产品: 多分支/多平台产品支持为不同分支/平台创建孪生需求,需求间内容保持同步。 孪生需求支持手动解除。 项目: 支持跨分支/平台创建、管理、维护计划、版本、发布。 客户端聊天: 支持通过机器人指令快速查看服务器及授权信息。 支持通过机器人指令多条件查询任务。 支持通过机器人指令操作任务状态并记录工时信息。 本期优化的全部需求和Bug请点击查看:https://github.com/eas...
- 下一篇
EE 框架 2.4.0 发布,跨平台桌面软件开发
值得信赖 为什么使用 桌面软件(办公方向、个人工具),仍然是未来十几年 PC 端需求之一,提高工作效率 electron 技术是流行趋势,百度翻译、阿里网盘、迅雷、有道云笔记 ...... ee 框架使用b(浏览器)s(主进程)s(远程后端服务)开发思想 前端、服务端同学都能快速入门 愿景 所有开发者都能学会桌面软件研发 简单 只需懂 JavaScript 开源 gitee:https://gitee.com/wallace5303/electron-egg2200+ github:https://github.com/wallace5303/electron-egg500+ 本次更新 ## 2.4.0 1. 增加混淆/bytecode加密配置opt,提升安全性 2. 增加插件的方式重写托盘、唤醒、升级、安全、扩展等功能 3. 增加java服务插件,感谢“zuihou”提供的PR 4. 增加jave服务demo,jar等完整用例 5. 增加Utils库函数:getEnv/getAppUserDataDir/getHomeDir/getBaseDir/ getRootDir/getA...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19