
高考25年忆往昔,Solon v4.0发布:做减法、跟协议、清生态,国产框架再成长
前几天高考刚过,朋友圈里又是一年一度的“晒准考证”。看着那些十八岁的脸,我忽然想起,自己已经是2001年那一届的人了。
掐指一算,整整二十五年。
我们那会儿,高考还在七月。后来2003年才改到六月,所以“黑色七月”这个词,是属于我们这代人的专属记忆。七月的太阳是真的毒,教室房顶吊着的电扇吱呀吱呀地转,转出来的全是热风;窗外的蝉叫得人心慌,老师反复叮嘱“涂答题卡别涂错行”,握笔的手心全是汗,草稿纸都被洇湿了一角。当时我还是住在一个县里的远房亲戚家。
现在回头看,高考其实没那么决定命运。它只是人生里第一次“独自面对一件大事”的演练。真正塑造一个人的,是那之后日复一日的选择、坚持和打磨。
写代码、做开源,也是一样的道理。就在这个时间点,Solon v4.0正式发布了。
Solon框架!
Java“新式”应用开发框架,2017~2026。从零开始构建(非java - ee架构),有灵活的接口规范与开放生态。
- 追求:更快、更小、更简单
- 提倡:克制、简洁、高效、开放、生态
- 官网:[https://solon.noear.org](https://solon.noear.org/)
由杭州无耳科技(Noear团队)开发并开源,遵循Apache 2.0协议。
有什么特点?
| 特点 | 描述 (相对于Srping生态) |
|---|---|
| 更高的计算性价比 | 并发高300%;内存省50% |
| 更快的开发效率 | 代码少;入门快;调试重启快10倍 |
| 更好的生产与部署体验 | 打包小90% |
| 更大的兼容范围 | 非java - ee架构;同时支持Java 8~Java 25,GraalVM Native Image |
用纪年标记成长
如果把一个开源框架的成长比作一个人的成长,那Solon现在差不多也到了“成年”的年纪。我们用纪年来标记它走过的路:
| 大版本 | 时间跨度 | 阶段 |
|---|---|---|
| v0 | 2018 ~ 2019(约2年) | 萌芽 |
| v1 | 2020 ~ 2022(约3年) | 打基础 |
| v2 | 2023 ~ 2024(约2年) | 成体系 |
| v3 | 2024 ~ 2026(约1.5年) | 全面铺开 |
| v4 | 2026 ~ | 新篇章 |
从2018年第一行代码到今天,近40万行代码(其中Solon AI体系,就占了近18万)。Solon从一个“想做个更轻的Java框架”的念头,长成了覆盖Web、Data、AI、Cloud、安全、编排全场景,拥有300 + 生态插件的应用开发框架。这条路不算快,但每一步都走得踏实 ---- 就像高考之后的人生,不靠一次爆发,靠的是持续的复利。
更新与兼容说明
1、概述
先说一句让大家安心的话:v4.0总体变化不大,主要是“做减法”。
这次大版本升级的核心思路,是移除历史包袱 ---- 把那些早就标记为弃用的方法和类彻底清理掉,让框架更干净、更轻。这恰恰呼应了Solon一贯的“克制”哲学:不是不断往上堆东西,而是敢于把不该留的东西删掉。
唯一变化较大的,是Solon AI体系 ---- 我们把`skill`概念正式改为了`talent`。
2、v3.x升到v4.x提醒(要认真核对)
- 提醒一:之前没用过弃用接口的,可以直接升级到v4.0.0。
- 提醒二:用过弃用接口的,建议先升级到3.10.7,借助编译器提醒把弃用代码替换干净后,再升级到4.0.0。这样过渡最平滑。
完整的弃用对照表(配置 / 插件 / 注解 / 类与方法),在官方更新说明里都列得清清楚楚,升级前认真核对一遍即可。
3、AI体系:从skill到talent
这是v4.0最值得说的一处变更。
之前Solon AI里用`skill`(技能)来描述给智能体扩展能力的机制。但随着Agent(智能体)生态发展,业界普遍用 “agent skill” 来指代另一类东西,两者撞名了,容易让人困惑。
所以我们把这个概念统一改名为`talent`(才能)。一字之差,消除歧义。对应的插件与类整体更名:
- `solon - ai - skill - *` -> `solon - ai - talent - *`
- `WebfetchTool` / `WebsearchTool` / `CodeSearchTool` -> `WebfetchTalent` / `WebsearchTalent` / `CodeSearchTalent`
- `ApplyDiffTool` / `ApplyPatchTool` -> `ApplyDiffTalent` / `ApplyPatchTalent`
- 新增`solon - ai - talent - gateway`(由原`solon - ai - skill - restapi`和`solon - ai - skill - toolgateway`合并而来)
- 新增`solon - ai - talent - mount`才能插件(原PoolManager独立出来)
如果你之前用的是`solon - ai - skill - *`,升级时把坐标换成`solon - ai - talent - *`即可。
4、AI生态:跟上协议,补齐能力
AI这一年跑得太快了,v4.0在协议和能力上做了不少跟进:
- 新增 `mcp - core`:替换之前的`mcp - sdk`,与官方命名保持一致(`mcp - sdk`已移除)。
- 新增 `solon - ai - sandbox`:为智能体提供沙盒隔离能力。
- MCP协议升级:`solon - ai - mcp`支持`MCP_2025_11_25`协议,并支持`ServerTransportSecurityValidator`签权。
- ReActAgent增强:`maxSteps`更名为`maxTurns`(贴合行业习惯);新增`getModel`方法;拦截器新增`onReasonStart`事件,`onReason`相应更名为`onReasonEnd`(凑成一对)。
- 上下文压缩优化:`SummarizationInterceptor`更名为更贴切的`ContextCompressionInterceptor`,并优化了压缩时机(从onObservation改到onReasonStart)和算法,增强了对过期区tool - use原子序列的追溯保护。
- TeamAgent:新增“初心标记”,让多智能体协作时不容易跑偏。
- MCP客户端:`McpClientProvider`新增`allowedTools` / `disallowedTools`工具控制机制;默认不再启用心跳(之前默认30秒一次);`McpProviders`更名为`McpClientProviders`。
这些改动,都是我们在真实的Agent开发里踩过坑之后做的回调。
5、生态规范化:插件“回家”
v4.0做了一件长期来看很重要的事 ---- 让一批第三方插件回归各自官方仓库维护。
过去为了方便,早先一批第三方库的Solon适配是由我们社区维护的。但更健康的方式,是由库的官方团队自己维护适配。这次梳理后,下面这些插件都迁回了官方坐标(升级时需要调整groupId):
| 旧坐标(已移除) | 新坐标(官方维护) |
|---|---|
| `mybatis - plus - solon - plugin` | `com.baomidou:mybatis - plus - solon - plugin` |
| `mybatis - flex - solon - plugin` | `com.mybatis - flex:mybatis - flex - solon - plugin` |
| `sa - token - solon - plugin` | `cn.dev33:sa - token - solon - plugin` |
| `liteflow - solon - plugin` | `com.yomahub:liteflow - solon - plugin` |
| `forest - solon - plugin` | `com.dtflys.forest:forest - solon - plugin` |
| `sms4j - solon - plugin` | `org.dromara.sms4j:sms4j - solon - plugin` |
| `dbvisitor - solon - plugin` | `net.hasor:dbvisitor - solon` |
| `bean - searcher - solon - plugin` | `cn.zhxu:bean - searcher - solon - plugin` |
(完整对照表见官方更新说明,这里只列了常用的几个。)
这件事短期会给升级带来一点点麻烦,但长期看,它让整个生态的协作关系更清晰、更可持续。一个框架走到v4,要考虑的已经不只是自己跑得多快,而是整个生态能不能一起走远。
6、弃用清理:该删的删
v4.0移除了大量历史弃用项,主要集中在几个方面,升级时编译器会给出提醒,按提示替换即可。挑几个高频的说:
注解层面:
- `@Bean(priority)` -> `@Condition(priority)`
- `@Bean(injected)` -> `@Bean(autoInject)`
- `@Tran` -> `@Transaction`
API层面:
- `SolonApp`的路由方法(`add*` / `get*` / `post*` / `filter*`等)统一收敛到`SolonApp.router()`下,例如`app.get(...)` -> `app.router().get(...)`。
- `Utils.async*` -> `RunUtil.async*`
- `ChatMessage.template()` -> `ChatMessage.ofUserTmpl()`、`ChatMessage.augment()` -> `ChatMessage.ofUserAugment()`
配置层面(举例):
| 移除配置 | 替代配置 |
|---|---|
| `server.session.state.domain` | `server.session.cookieDomain` |
| `solon.staticfiles.maxAge` | `solon.staticfiles.cacheMaxAge` |
| `solon.cloud.nacos2.*` | `solon.cloud.nacos.*` |
清理后,框架内核继续保持着它一贯的“克制身材”。
7、依赖升级:跟上上游
v4.0同步升级了一大批底层依赖,让框架始终站在稳定且较新的基础之上。挑几个代表性的:
- Socket.D升至2.6.0、FolkMQ升至1.8.0
- snack4升至4.0.52、liquor升至1.6.8、eggg升至1.1.3
- Netty升至4.1.134.Final、reactor - netty升至1.3.5
- Jackson2升至2.21.4、fastjson2升至2.0.62、gson升至2.14.0
- redisson升至3.52.0、lettuce升至6.8.2、kafka升至3.9.2
- Tomcat、Undertow、Jetty、Vert.x等服务容器均同步到最新稳定版
写在最后
二十五年前那个七月,我以为高考是终点。后来才慢慢明白,它只是无数个“重新开始”里的一个。
做开源也是这样。v4.0不是终点,它只是Solon又一次“长大”的标记。删掉旧的包袱,跟上新的协议,把生态交还给更合适的人维护 ---- 这些都不是惊天动地的大事,但正是这些不起眼的、持续的打磨,让一个项目能走得更久、更稳。
如果你正在用Solon,欢迎升级到v4.0试试,遇到问题随时来社区反馈。如果你还没用过,也欢迎来看看这个国产框架这些年走过的路。
最后,祝今年所有刚走出考场的孩子们:愿你们的人生,比一次考试辽阔得多。
- 项目仓库: 、 、
- 官方网站:[https://solon.noear.org](https://solon.noear.org/)
- 更新与兼容说明全文:
- 当前版本:v4.0
- 开源协议:Apache 2.0 | Copyright © 2017 - 2026 杭州无耳科技 / Noear开源团队


被折叠的 条评论
为什么被折叠?



