Solon v4.0 正式发布,高考记忆版
用纪年标记成长
如果把一个开源框架的成长比作一个人的成长,那 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
更多推荐



所有评论(0)