Skip to content

版本历史

This content is not available in your language yet.

升级前,请先查看对应版本的兼容性说明。

版本号遵循语义化版本规范:主版本.次版本.修订号

  • 主版本:可能包含破坏性变更
  • 次版本:新增功能,向后兼容
  • 修订号:问题修复,向后兼容

无

  • feat.yaml 新增 bool 类型的配置值
  • 升级 fastjson 版本至 2.0.64
  • 修复 feat.yaml 缺失 feat.redis.username 配置解析的问题。
  • Controller 增加返回类型适配: List<Byte>、List<Short>、List<Integer>、List<Long> 以及直接继承 Map 的POJO 类。
  • 修复通过反射注入代理 Bean 属性字段报 NoSuchFieldException 的问题。
  • 优化 AOT 编译失败的异常提示
  • 环境变量与系统属性支持
    • feat.yml 支持 ${} 语法:${property} 或 ${property:defaultValue}
    • 解析优先级:系统属性 > 环境变量 > 默认值
    • 支持数据源、Redis、服务器等所有配置项
  • 序列化工具优化
    • 新增 SerializerUtils 工具类统一属性解析
    • 重构序列化器,使用 IntegerValuesSerializer 和 StringValuesSerializer 统一处理数组和列表
    • 增强 null 值处理
  1. 更新版本号:<feat.version>2.4.0</feat.version>

  2. 在 feat.yml 中使用 ${} 语法(可选)

  3. 通过系统属性或环境变量传入配置值:

    bash java -Ddatasource.url=jdbc:mysql://localhost/feat -jar app.jar

  • ✅ 完全向后兼容 v2.3.0
  • ✅ 旧配置方式继续有效
  • ✅ 新旧配置方式可混合使用
  • ✅ 无需修改业务代码

  • HTTP:优化 PostInputStream 读取逻辑,修复完整 body 读取时可能触发的 StackOverflowError 异常
  • HTTP:调整异步请求体读取缓冲区判断逻辑,提升小 body 场景的读取性能
  • 依赖:smart-socket 升级至 2.1.3
  • 拦截器:新增方法拦截器能力,支持 @Interceptor、@AroundInvoke 和 @Interceptors
  • 拦截器:优化拦截器链异常处理,并完善 AOT 序列化支持
  • 示例:新增 Nacos 配置中心接入示例,补充多环境配置与动态刷新用法
  • Bean:@Bean 默认加载顺序调整为 Byte.MAX_VALUE,方便基础设施 Bean 提前初始化
  1. 更新版本号

    <feat.version>2.3.0</feat.version>
  2. 检查 Bean 初始化顺序

    @Bean 的默认 order 从 0 调整为 Byte.MAX_VALUE。如果基础设施 Bean 需要优先初始化,请显式设置较小的顺序:

    @Bean(order = 0)
    public class NacosConfigService {
    }
  3. 重新编译 AOT 生成代码

    如果新增或调整了 @Interceptor、@AroundInvoke、@Interceptors,需要重新执行 mvn compile 或重新打包,让 AOT 代码重新生成。

变更项影响处理方式
@Bean 默认 order默认 Bean 初始化顺序由 0 变为 Byte.MAX_VALUE依赖初始化顺序的 Bean 显式声明 order
方法拦截器新增编译期 AOT 能力,不影响未使用拦截器的应用使用拦截器后重新编译生成代码
smart-socket 版本默认依赖升级至 2.1.3如项目显式锁定 smart-socket 版本,建议同步升级

  • Client:新增 HttpOptions#maxConnections,支持配置 HTTP 连接池最大连接数
  • Client:优化 HTTP 客户端长链接的判定逻辑。
  • Server:修复 upgrade 场景下解码异常的问题。
  • HTTP/2:优化推送请求中的 Cookie 处理逻辑
  • ReadListener 和 WriteListener 标记为已弃用,该功能仅用于适配 Jakarta Servlet 规范。
  • smart-socket 升级至 2.1.2
  • 支持 feat.yml / feat-{env}.yml 多环境配置生成

无

无


  • 依赖:升级 smart-socket 至 2.0.0
  • Server:ServerOptions#setMaxRequestSize 方法调整为链式风格,支持流式配置
  • 协议:修复文件上传场景中文文件名解析乱码问题【ISSUE:IJPD9F】
  • 模型:新增 Anthropic 接口规范适配,支持 Claude 系列模型
  • MCP:废弃 MCP Server 对于 SSE 的适配(规范已过时),仅保留 Streamable HTTP 传输方式
  • Chat:移除 chat 接口的模型定制化逻辑,优先遵循 OpenAI 接口规范,简化多模型适配
  • Chat:新增图像消息支持,支持多模态对话
  • Chat:重构工具调用实体类,优化工具调用流程
  • 模块:移除 feat-cloud-aot-vm 模块
  1. 更新版本号

    <feat.version>2.1.0</feat.version>
  2. 检查 ServerOptions 链式调用

    setMaxRequestSize 现在支持链式调用:

    // v2.1.0 推荐写法
    server.options()
    .setMaxRequestSize(1024 * 1024)
    .setPort(8080);
  3. Feat AI 接口调整

    • 若使用 Anthropic 模型,通过 apiSpec(ApiSpec.ANTHROPIC) 切换 API 规范
    • SSE 传输方式已移除,请使用 Streamable HTTP 方式
变更项影响处理方式
setMaxRequestSize 返回类型支持链式调用可按需链式配置
feat-cloud-aot-vm 模块移除模块不存在移除相关依赖
MCP SSE 传输方式移除功能废弃迁移至 Streamable HTTP
Feat AI Chat 接口重构定制化逻辑移除遵循标准 OpenAI 规范

这是 Feat 项目的一个重要里程碑。我们将开源协议从 AGPL 升级至 Apache 2.0。

为什么切换协议?

在项目初期,我们选择 AGPL 旨在保护开源项目的完整性。但随着项目成熟,AGPL 的”传染性”条款对企业用户构成了法律风险,成为阻碍广泛采用的主要因素。

Apache 2.0 已成为企业级开源项目的事实标准(Spring Framework、Kubernetes、TensorFlow 等均采用)。它在保护创作者权益与促进生态繁荣之间取得了良好平衡。

对企业用户的价值:

方面变化
商业使用可自由用于商业闭源项目,无需开源义务
专利授权明确的专利使用权,降低知识产权风险
技术选型降低法务审批门槛,加速决策流程
生态参与可自由定制和扩展,促进第三方库发展

v2.0.0 与 v1.x 完全兼容,只需更新版本号:

<feat.version>2.0.0</feat.version>

无需修改任何代码,升级后自动适用 Apache 2.0 协议。


  • Client:重构 GZIP 输入流,支持完整头部解析和异步解码
  • Client:修复 SSE 事件数据换行符转义问题
  • Server:修复静态资源处理器路径解析、HEAD 请求、空指针等问题
  • Server:支持配置静态资源路径
  • Router:支持花括号 {} 形式的路径参数匹配
  • Core:升级 smart-socket 至 1.8.3
  • Agent:实现 ReAct Agent 智能体,支持系统提示词、工具执行钩子
  • Agent:AI 代理工具改为异步执行模式
  • 模型:新增 Kimi-K2.5-Instruct 支持
  • 工具:新增 WebReader 网页阅读器功能
  • 数据库:新增 MyBatis 集成支持
  • 会话:新增分布式会话管理,集成 Redis
  • 部署:新增 Docker 部署支持(JRE 和 Native Image)
  • 打包:新增 Fat Jar 打包支持
  • 路由:RequestMapping 支持 {} 花括号路径参数
  1. 更新版本号

    <feat.version>1.5.0</feat.version>
  2. 处理编译报错

    升级后若出现编译错误,根据错误提示调整代码。

  3. 检查 AsyncResponse 使用

    AsyncResponse.complete() 方法返回类型从 void 变更为 AsyncResponse:

    v1.5+
    // v1.4 及之前
    asyncResponse.complete();
    return asyncResponse.complete();
变更项影响处理方式
AsyncResponse.complete() 返回类型有返回值按需要接收返回值
ApplicationContext 设为 final无法继承使用组合而非继承
Feat AI Agent 接口重构多处变更参考新文档调整

  • Client:新增友好的 SSE 接口,更好的赋能 AI 开发
  • Client:HttpClient 支持链路复用和连接资源自动释放
  • Client:支持解析 Content-Encoding: dcz 响应
  • Server:Cookie Name 默认采用 RFC2109 规范
  • Server:支持非 UTF-8 字符集的请求
  • Core:升级 smart-socket 至 1.7.5
  • SSE:适配全新 SSE 接口,提升代码可读性
  • Agent:初步实现通用 Agent 能力,内置多款工具
  • 模型:新增 DeepSeek-V3.2-Exp、DeepSeek-V3_1、Qwen3-8B、Qwen3-32B
  • 性能:异步接收 Form 表单数据,并发性能大幅提升
  • HTTPS:新增 feat.yaml 配置项 $.server.autoSSL 自动启用 HTTPS
  • AOT:优化 AOT VM 模块,对齐 AOT 运行表现
  1. 更新版本号至 1.4.0
  2. 处理编译报错(主要是包路径迁移)
  3. 若使用 Feat AI Agent,注意接口存在不兼容重构
  • feat-core 模块中多个工具类进行包路径迁移
  • feat-ai 模块 Agent 相关接口存在多处重构,未来一段时期内该情况持续存在

  • 静态资源服务迁移至示例模块
  • FeatUtils 增加 isEmpty 和 isNotEmpty 方法
  • 优化 Router 路径参数解析性能
  • 更加规范、统一的接口定义
  • 引入编译期 LICENSE 授权验证机制
  • 剥离 AOT 相关代码作为独立模块
  • 新增 AOT VM 模块,提升本地开发体验
  • Feat AI 模板存在多处接口定义及配置参数重构
  • AOT 相关代码剥离成独立模块,保留原包路径定义,基本保持兼容性

  • 优化 HttpClient 实现,修复已知 bug
  • 启用 SSE 时默认禁用 chunked 响应 header
  • 扩充 ByteTree 初始化缓存值,提升服务性能
  • 版本号定义从 ServerOptions.java 迁移至 Feat.java
  • 新增 MCP 规范实现
  • 新增 @HttpClient 注解,用于发起 HTTP 请求
  • 支持响应结果为 bool 值的 HTTP 接口
  • @Controller 增加 gzip、gzipThreshold 配置项
  • 新增基于注解的 MCP Server 开发能力

  • Router:支持定义相同 URL、不同 HTTP Method 的接口
  • 日志:RunLogger 自动感应日志级别变化,支持动态调整
  • 日志:日志级别环境变量由 smarthttp.log.level 调整为 feat.log.level
  • 工具类:将 DateUtils、GzipUtils、HttpUtils 等统一汇集至 FeatUtils
  • Banner:限制单进程内 Feat Banner 最多输出一次
  • 配置:新增 feat.yaml/feat.yml 配置文件解析,支持 @Value 注入
  • 日志:支持运行时动态调整指定 loggerName 的日志级别
  • 性能:编译器自动将非通配 URI 注册至 ByteTree,提升解析性能

POM 升级:

<dependency>
<groupId>tech.smartboot.feat</groupId>
<artifactId>feat-core</artifactId>
<version>1.1.0</version>
</dependency>

代码调整:

  • CloudOptions.addExternalBean() 重命名为 registerBean()
  • 废弃工具类:DateUtils、GzipUtils、HttpUtils、NumberUtils、StringUtils、CollectionUtils、Constant、SHA1、WebSocketUtil

Feat 首个正式发布版本,提供完整的企业级 Web 服务开发框架功能。

  • 性能:基于智能异步通信框架,轻松应对高并发场景
  • 协议:支持 HTTP/1.0、HTTP/1.1、HTTP/2、WebSocket、SSE
  • 功能:内置静态资源服务器、灵活路由、RESTful API 支持
  • 部署:快速启动(<1秒),适合容器化和 Serverless 场景
  • 企业级:Feat Cloud 提供类似 Spring Boot 的开发体验
  • AI:Feat AI 模块支持 AI 应用开发

  • 问题反馈:Gitee Issues
  • 版本咨询:查看对应版本的微信公众号发布文章
  • 升级支持:在 Issue 中描述你的升级场景,获取针对性建议