Solon 框架!

Solon 是新一代,Java 企业级应用开发框架。从零开始构建(No Java-EE),有灵活的接口规范与开放生态。采用商用友好的 Apache 2.0 开源协议,是“杭州无耳科技有限公司”开源的根级项目,是 Java 应用开发的生态基座(可替换美国博通公司的 Spring 生态)。

  • 追求: 快速、小巧、简洁
  • 提倡: 克制、高效、开放

7年开源时间,累计代码提交1.6万次 ,近半年下载量1200万次。

同时支持运行时环境(不基于 java-ee 构建,所以可以同时兼容):

  • java8, java11, java17, java21, java24

有什么特点(相对 Java Spring 方案)?

特点 描述
更高的计算性价比 并发高 700%;内存省 50%
更快的开发效率 代码少;入门简单;启动快 10 倍(调试快)
更好的生产与部署体验 打包小 90%
更大的兼容范围 非 java-ee 架构;同时支持 java8 ~ java24,graalvm native image

最新的 techempower 测试数据:

项目架构示意图(全场景应用开发支持)

最近更新了什么?(每个版本都会有满满的清单)

  • 新增 solon-ai-repo-pgvector 插件
  • 新增 solon-ai-search-baidu 插件
  • 新增 solon @Managed 注解(未来替代 @Component
  • 新增 solon ActionArgumentResolver 接口
  • 添加 solon-net-httputils ssl 定制支持
  • 添加 solon-flow FlowContext:incrGet, incrAdd
  • 添加 solon-flow aot 配置
  • 添加 solon-ai-core TextLoader(byte[])(SupplierEx<InputStream>) 构造方法
  • 添加 solon-ai-core ChatConfig:defaultToolsContext(默认工具上下文), defaultOptions(默认选项) 属性
  • 添加 solon-ai-core RepositoryStorable:insert(list,progressCallback)asyncInsert(list,progressCallback) 方法,支持进度获取
  • 添加 solon-ai-mcp 客户端 ssl 定制支持
  • 添加 aliyun-oss-solon-cloud-plugin 阿里云oss获取临时文件url逻辑
  • 优化 solon-boot server 启动时机(转到 postStart 时)
  • 优化 solon-net-httputils 流接收的编码处理
  • 优化 solon-net-http HttpSslSupplier 接口定义(以适与 okhttp 的接口变化)
  • 优化 solon-docs-openapi2 body 动态模型的 key 添加 method(避免冲突)
  • 优化 solon-flow Chain:parseByDom 节点解析后的添加顺序
  • 优化 solon-flow Chain 解析统改为 Yaml 处理,并添加 toYaml 方法
  • 优化 solon-flow Chain:toJson 输出(压缩大小,去掉空输出)
  • 优化 solon-ai 方言 think 思考内容和字段的兼容性处理
  • 优化 solon-ai 方言处理与 modelscope(魔搭社区)的兼容性
  • 优化 solon-ai 方言处理与 siliconflow(硅基流动)的兼容性
  • 优化 solon-ai 方言处理的流式节点识别兼容性
  • 优化 solon-ai 用户消息的请求构建(当内容为空时,不添加 text)
  • 优化 solon-ai-mcp McpClientProvider 心跳间隔控制(5s 以下忽略)
  • 优化 solon-ai-mcp McpServerContext 增加 stdio 代理支持(环境变量自动转为 ctx:header)
  • 优化 solon-ai-mcp WebRxSseClientTransport 添加 debug 日志打印
  • 优化 local-solon-cloud-plugin 在启动时,预热 RunUtil
  • 修复 solon aot 时 extract method 未注册的问题
  • 修复 solon-net-httputils JdkHttpResponse:bodyAsString 不能使用指定编码的问题
  • 修复 solon-net-httputils TextStreamUtil 不能使用指定编码的问题
  • 修复 solon-scheduling-simple 可能启动后就退出的问题(有些任务触发时间晚,调试线程池未启动)
  • 修复 solon-security-validation 的 @Email 验校注解兼容性问题(之前 name 有点会出错)
  • liquor 升为 1.5.8
  • wood 升为 1.3.24

项目仓库地址?

官网?

Solon v3.4.2(Java 应用开发生态基座)的更多相关文章

  1. 5款强大的Java Web开发工具

    1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...

  2. Mac OS X上IntelliJ IDEA 13与Tomcat 8的Java Web开发环境搭建

    这标题实在有点拗口,不知道怎么写好,但看了标题也就明白文本的内容.最近几天在折腾这些玩意儿,所以写写总结.除了环境搭建,本文还是一篇入门级的上手教程. 去下载一些东西 JDK安装 Tomcat安装 T ...

  3. 用Spring Boot颠覆Java应用开发

    Java开发概述: 使用Java做Web应用开发已经有近20年的历史了,从最初的Servlet1.0一步步演化到现在如此多的框架,库以及整个生态系统.经过这么长时间的发展,Java作为一个成熟的语言, ...

  4. Google 地图 API V3 针对移动设备进行开发

    Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...

  5. Java多线程开发系列之番外篇:事件派发线程---EventDispatchThread

    事件派发线程是java Swing开发中重要的知识点,在安卓app开发中,也是非常重要的一点.今天我们在多线程开发中,穿插进来这个线程.分别从线程的来由.原理和使用方法三个方面来学习事件派发线程. 一 ...

  6. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  7. 【转】 java web开发之安全事项

    从事java web开发也有几年了,可是开发中的安全问题却越来越不以为然.直到不久遇到一黑软,瞬间sql注入,少时攻破网站数据库.还好,我还没有用root级的用户连接数据库.不过也没有什么用了,因为我 ...

  8. [刘阳Java]_避开环境配置快速的使用Java的开发工具_第5讲

    我们一般学习Java都应该遵循通过系统的命令工具来编译Java程序,然后对编译好Java程序进行运行,这个是非常好的习惯.但是随着后期学习Java技术的深入我们也得像Java的IDE工具屈服.所以,可 ...

  9. Java多线程开发技巧

    很多开发者谈到Java多线程开发,仅仅停留在new Thread(...).start()或直接使用Executor框架这个层面,对于线程的管理和控制却不够深入,通过读<Java并发编程实践&g ...

  10. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...

随机推荐

  1. RPC实战与核心原理之动态代理了

    动态代理 回顾 用来解决两个应用之间的通信,而网络则是两台l两台机器之间的"桥梁",只有搭好桥梁才能把请求数据从一端传输到另一端,其中关键就是"可靠的传输" 背 ...

  2. B1006 换个格式输出整数

    让我们用字母 B 来表示"百".字母 S 表示"十",用 12-n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数.例如 ...

  3. acwing 智商药

    题目链接:5046. 智商药 - AcWing题库 首先考虑dfs 不用想肯定超时 过了10/17个测试点 代码 1 #include<bits/stdc++.h> 2 3 using n ...

  4. linux下用android-file-transfer-linux替换掉 gvfs-mtp来挂载mtp

    用android-file-transfer-linux替换掉 gvfs-mtp来挂载mtp 问题现状 在我使用gvfs-mtp挂载的时候,无论读取文件还是获取对应文件夹下所有文件的路径等操作,都非常 ...

  5. 在Mac上使用docker运行gitlab-ce

    首先创建相关路径,并设置权限: mkdir -p /opt/gitlab/{config,data,logs} sudo chmod -R 777 /opt/gitlab 使用如下docker-com ...

  6. K8s新手系列之探针

    概述 官方文档: https://kubernetes.io/zh-cn/docs/concepts/configuration/liveness-readiness-startup-probes/ ...

  7. 信创迁移必看!X86 迁 Arm 竟能全自动适配?

    在信创技术转型的背景下,X86 到 Arm 架构的迁移确实是不少企业面临的实际挑战.最近在和客户对接信创项目时,我们也深度接触了这类场景,原本基于 X86 架构构建的容器应用,在迁移至 Arm 服务器 ...

  8. 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-17- 如何优雅地切换浏览器多窗口(详细教程)

    1.简介 有时候我们在网页上点击一些按钮或超链接时,有时会打开一个新的网页窗口.这个时候如果下一步操作是在新的网页窗口上,那么就需要切换网页窗口,切换到新的网页窗口后再执行元素定位等操作.Playwr ...

  9. WebSocket网络通信

    WebSocket 网络通信 导入依赖: <!-- WebSocket依赖 --> <dependency> <groupId>log4j</groupId& ...

  10. USB工程应用基础概念简介

    USB 是一种串行传输总线,使用差分信号传输数据,USB 设备支持热插拔. USB 规格及接口 USB 传输速率 USB 标准的不同版本有不同的传输速率和电压电流特性. 标准版本 发布日期 速率代码 ...