借此发版,纪念敬爱的张雪峰老师!
OpenSolon 开源框架!(也称:Solon)
OpenSolon 是新一代,Java 企业级应用开发框架。从零开始构建(No Java-EE),有灵活的接口规范与开放生态。采用商用友好的 Apache 2.0 开源协议,是“杭州无耳科技有限公司”开源的根级项目,是 Java 应用开发的生态基座(可替换美国博通公司的 Spring 生态)。
- 追求: 快速、小巧、简洁
- 提倡: 克制、高效、开放
7年开源时间,累计代码提交1.6万次 ,近半年下载量1200万次。
同时支持运行时环境(不基于 java-ee 构建,所以可以同时兼容):
- java8, java11, java17, java21, java25
目前有几个主要的项目仓库:
| 代码仓库 |
描述 |
| /opensolon/solon |
Solon ,主代码仓库 |
| /opensolon/solon-examples |
Solon ,官网配套示例代码仓库 |
| |
|
| /opensolon/solon-expression |
Solon Expression ,代码仓库 |
| /opensolon/solon-flow |
Solon Flow ,代码仓库 |
| /opensolon/solon-ai |
Solon Ai ,代码仓库 |
| /opensolon/solon-cloud |
Solon Cloud ,代码仓库 |
| /opensolon/solon-admin |
Solon Admin ,代码仓库 |
| /opensolon/solon-integration |
Solon Integration ,代码仓库 |
| /opensolon/solon-java17 |
Solon Java17 适配仓库(base java17) |
| /opensolon/solon-java25 |
Solon Java25 适配仓库(base java25) |
| |
|
| /opensolon/solon-gradle-plugin |
Solon Gradle ,插件代码仓库 |
| /opensolon/solon-idea-plugin |
Solon Idea ,插件代码仓库 |
| /opensolon/solon-vscode-plugin |
Solon VsCode ,插件代码仓库 |
有什么特点(相对 Java Spring 方案)?
OpenSolon 对国产算力非常友好,对 cpu 和 memory 的需求远低于同类方案。
| 特点 |
描述 |
| 更高的计算性价比 |
并发高 700%;内存省 50% |
| 更快的开发效率 |
代码少;入门简单;启动(或调试重启)快 10倍 |
| 更好的生产与部署体验 |
打包小 90% |
| 更大的兼容范围 |
非 java-ee 架构;同时支持 java8 ~ java25,graalvm native image |
最新的 techempower (第三方知名测试平台)测试数据:
项目架构示意图(全场景应用开发支持)
![]()
/solon v3.10.0 更新说明
- 添加
solon Assert.isNumber, isBool 等给检测
- 添加
solon-net-httputils HttpUtils.url() 方法
- 添加
solon-docs-openapi3 分布式文档支持
- 添加
solon-expression 添加 @bean 表达式支持
- 优化
solon-logging-log4j2 SolonTagsConverter 去掉一个注解 tags
- 优化
solon-flow FlowContext 持久化,添加 stopped 属性
- 优化
solon-openapi2-knife4j 的资源控制(避免多余的资源开放)
- 优化
solon-openapi3-knife4j 的资源控制(避免多余的资源开放)
- 优化
solon-sessionstate-jedis 超时处理(get 自动续时)
- 优化
solon-sessionstate-redisson 超时处理(get 自动续时,sessionPublish、sessionRefresh 加越时)
- 修复
solon-scheduling-simple MDC tag(job) 污染其它日志的问题
- 修复
solon-cloud-gateway CloudGatewayLocator.loadDiscoverConfig 可能出现 null 异常(允许没有发现服务)
- snack4 升为 4.0.41
- fastjson2 升为 2.0.61
- jakarta.logback 升为 1.5.32
- jackson3 升为 3.1.0
- log4j 升为 2.25.3
- jackson 升为 2.19.4
- asm 升为 9.9.1
- lombok 升为 1.18.44
solon-expression @bean 表示式示例:
Map<String, Object> vars = new HashMap();
vars.put("a", 1);
EnhanceContext context = new EnhanceContext(vars);
context.forBeans(Solon.context()::getBean);
SnEL.eval("@user.getAge() == a ? true : false", context);
/solon-ai v3.10.0 更新说明
solon-ai 发布智能体综合示例项目(可直接用于生产或定制):
具体更新:
- 添加 solon-ai-core ChatModel.outputSchema 配置支持(且与 Agent 统一基于方言实现,各方言可定制)
- 添加 solon-ai-core ChatModel.contextLength 配置支持(为 Agent 方便自动计算限制数)
- 添加 solon-ai-core AssistantMessage.getJsonContent 方法
- 添加 solon-ai-core MarkdownUtil 工具类
- 添加 solon-ai-dialect-gemini tool-call 的思考签名支持
- 添加 solon-ai-agent ReActChunk.getMetrics 方法
- 添加 solon-ai-agent ThoughtChunk 流块
- 添加 solon-ai-agent Metrics.addMetrics 锁安全
- 添加 solon-ai-agent AgentChunk.getMeta 流块元数据(方便在传递过程中,做标识)
- 优化 solon-ai-core AbstractChatDialect 解析 tool 参数的兼容性
- 优化 solon-ai-dialect-dashscope 方言 支持流式传输与百炼联网搜索
- 优化 solon-ai-dialect-anthropic tool.args 不规范时的兼容性(比如 json 不完整)
- 优化 solon-ai-dialect-gemini 特定 provider 结束时返回 content 为空的消息才设置finishReason 导致结束标志被提前过滤
- 优化 solon-ai-agent ReActAgent onThought 事件,优先使用 getReasoning 获取 思考内容
- 优化 solon-ai-agent ReActAgent SummarizationInterceptor 添加 maxContextLength 控制参数(很重要)
- 优化 solon-ai-agent ActionChunk 分为 ActionEndChunk 和 ActionStartChunk(并保留 ActionChunk 标为弃用)
- 优化 solon-ai-agent 流式处理
catch (Exception,换成 catch (Throwable
- 优化 solon-ai-skill-restapi 每个 api 可以添加独立的验证机制
- 优化 solon-ai-skill-cli 避免 bash 把当前进程给删掉了
- 优化 solon-ai-agent ActionTask 执行完后就更新快照(避免可能的长时间没有更新快照)
- 调整 solon-ai-agent 临时挂起操作,由 XxxTrace 转到 AgentSession(更统一)
- 调整 solon-ai-core Skill 的激活逻辑,如果 getInstruction 为空,则不进入 SystemPrompt(之前还要 description 为空)
- 修复 solon-ai-agent ReActAgent 思考事件触发逻辑,确保在所有情况下都被调用
- 修复 solon-ai-core ChatModel.outputSchema 配置无效的问题
- 修复 solon-ai-core 工具调用时‘可能’出现消息内容重复的问题(重要,v3.9.2 时出现)