Solon v4.0 正式发布,高考记忆版
前几天高考刚过,朋友圈里又是一年一度的"晒准考证"。看着那些十八岁的脸,我忽然想起,自己已经是 2001 年那一届的人了。
掐指一算,整整二十五年。
我们那会儿,高考还在七月。后来 2003 年才改到六月,所以"黑色七月"这个词,是属于我们这代人的专属记忆。七月的太阳是真的毒,教室房顶吊着的电扇吱呀吱呀地转,转出来的全是热风;窗外的蝉叫得人心慌,老师反复叮嘱"涂答题卡别涂错行",握笔的手心全是汗,草稿纸都被洇湿了一角。当时我还是住在一个县里的远房亲戚家。
现在回头看,高考其实没那么决定命运。它只是人生里第一次"独自面对一件大事"的演练。真正塑造一个人的,是那之后日复一日的选择、坚持和打磨。
写代码、做开源,也是一样的道理。就在这个时间点,Solon v4.0 正式发布了。
Solon 框架!
Java "新式"应用开发框架,2017 ~ 2026。从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态。
- 追求:更快、更小、更简单
- 提倡:克制、简洁、高效、开放、生态
- 官网: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://gitee.com/opensolon/solon 、 https://gitcode.com/opensolon/solon 、 https://github.com/opensolon/solon
- 官方网站:https://solon.noear.org
- 更新与兼容说明全文:https://solon.noear.org/article/1456
- 当前版本:v4.0
- 开源协议:Apache 2.0 | Copyright © 2017-2026 杭州无耳科技 / Noear 开源团队

浙公网安备 33010602011771号