Solon v2.4.0 发布,Java 生态的新星燃起
Solon 是什么开源项目?
一个,Java 新的生态型应用开发框架。它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模)。与其他框架相比,它解决了两个重要的痛点:启动慢,费内存。
关键记事:
- 2021年1月,正式对外开源
- 2022年7月,建立官网,发力推广
- 2023年2月,v2.0 发布。官网增加 Solon Initializr,用于生成项目模板。
- 2023年4月,成为信通院可信开源社区、可信开源项目。Maven 单月下载量突破100万。代码提交数超 11000 次
- 2023年6月,Maven 单月下载量突破200万。官网资料超 500 个页面。
解决痛点?
由于Solon Bean容器的独特设计,不会因为扩展依赖变多而启动很慢(开发调试时,省时、爽快)!以知名开源项目“小诺”为例:
- “snowy-spring 版” 启动 15-50秒
- “snowy-solon 版” 启动3-5秒,内存节省1/3(有兴趣的,欢迎拉取代码体验)
所谓:“时间就是生命,效率就是金钱”,“天下武功,唯快不破”。
相对于 Spring Boot 和 Spring Cloud 的项目,有什么特点?
- 启动快 5 ~ 10 倍。 (更快)
- qps 高 2~ 3 倍。 (更高)
- 运行时内存节省 1/3 ~ 1/2。 (更少)
- 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小)
- 同时支持 jdk8, jdk11, jdk17, jdk20, graalvm native image
本次更新了什么?
- 新增 solon-openapi2-knife4j 插件,替代 solon-swagger2-knife4j
- 增加 server.socket.ssl.* 配置
- 增加 server.websocket.ssl.* 配置
- 增加 Context::isSecure 接口
- 增加 ChainManager::defExecuteHandler 接口
- 增加 ChainManager 对 SessionStateFactory 的管理,原管理方式移除
- 增加 @Header String[] xxx 注入支持
- 增加 Converter 体系,一般用于基础类型的通用转换
- 增加 日志服务孵化机制,可在打印前进行完成格式配置
- 增加 solon.boot.socketd.netty 插件对 ssl 的支持
- 增加 solon.boot.websocket.netty 插件对 ssl 的支持
- 优化 RouterListener 取消自己的线程池,改用 RunUtil
- 优化 JsonConverter 标为弃用,统一由 Converter 替代
- 优化 SocketChannelBase 标为弃用,统一由 ChannelBase 替代
- 优化 ResourceUtil 的根路径兼容性
- 优化 @Init 注解逻辑,仅对原始实例有效。保持与 LifecycleBean 相同策略
- 优化 solon.boot.smarthttp 的 ws 适配
- 优化 nacos2-solon-cloud-plugin 的适配,统一 jackson 版本
- 优化 nacos-solon-cloud-plugin 的适配,统一 jackson 版本
- 优化 LogUtil 扩展方式,改为静态扩展方式,原手动方式标为弃用
- 优化 Context::headerValues() 返回类型为 String[]
- 优化 Context::paramValues() 统一 server 相关处理逻辑
- 优化 统一 request 参数与实体字段的注入转换机制,并增加自定义转换机制
- 优化 内核日志打印顺序,由 SolonApp 实例化后再打印。以便日志格式配置先加载
- 优化 当使用 http ssl 时,服务启动打印为 https 地址
- 优化 ActionExecuteHandlerDefault::changeBody 参数结构,方便不同的序列化方案处理
- 优化 Nami 编码器匹配策略及头同步策略,尤其是仅单编码包引入时
- 优化 AbstractRoutingDataSource 的关闭处理
- 优化 ShardingDataSource 增加 Closeable 接口支持
- 调整 beetlsql-solon-plugin 插件,DbConnectionSource 改为公有,调整包结构
- 修复 solon-swagger2-knife4j 插件,递归类型的数据模型会栈溢出的问题
- 修复 solon-swagger2-knife4j 插件,相同 path 不能显示多个 method 的问题
- 修复 solon-swagger2-knife4j 插件,
List<Demo>
风格参数,不能正常构建 json 示例 - 修复 solon-swagger2-knife4j 插件,
Page<Demo>
、Result<Page<Demo>>
等复杂嵌套的临时模型,不能正常构建 json 示例 - dbvisitor 升为 5.3.3
- mybatis-flex 升为 1.5.1
- sqltoy 升为 5.2.59
- fastmybatis 升为 2.8.1
- bean-searcher 升为 4.2.2
- liteflow 升为 2.10.5
- beetl 升为 3.15.7.RELEASE
- beetlsql 升为 3.23.4-RELEASE
- smarthttp 升为 1.2.8
- fastjson2 升为 2.0.35
项目仓库地址?
Solon v2.4.0 发布,Java 生态的新星燃起的更多相关文章
- XXL-JOB v2.3.0 发布 | 易用性增强
转: XXL-JOB v2.3.0 发布 | 易用性增强 v2.3.0 Release Notes 1.[新增]调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略.立即补偿触发一次等: 2. ...
- Solon v2.2.7 发布,支持 Java 8 到 Java 20
Solon 是一个高效的 Java 应用开发框架:更快.更小.更简单.也是一个有自己接口标准规范的开放生态. 150来个生态插件,覆盖各种不同的应用开发场景: 相对于 Spring Boot 和 Sp ...
- Solon v2.2.6 发布,助力信创国产化
Solon 是一个高效的 Java 应用开发框架:更快.更小.更简单.它是一个有自己接口标准规范的开放生态,可为应用软件国产化提供支持,助力信创建设. 150来个生态插件,覆盖各种不同的应用开发场景: ...
- Solon v2.2.10 发布,助力信创国产化
Solon 是一个高效的 Java 应用开发框架:更快.更小.更简单.它不是 Spring.没有使用 Servlet.JavaEE 接口,是一个有自己接口标准的开放生态.可以为应用软件国产化提供支持, ...
- Solon v2.1.4 发布。支持 java、kotlin、groovy!
本次发布,重点测试和验证了在 java.kotlin.groovy 三种 jvm 语言里,开箱即用的特性.并发布 Solon Initializr: https://solon.noear.org/s ...
- Solon v1.11.0 发布,Hello Java
一个更现代感的 Java 应用开发框架:更快.更小.更自由.没有 Spring,没有 Servlet,没有 JavaEE:独立的轻量生态.主框架仅 0.1 MB. @Controller public ...
- Java 新的生态型应用开发框架,Solon v2.2.13 发布
Java 新的生态型应用开发框架,Solon :更快.更小.更简单.从零开始构建,有自己的标准规范与开放生态: 150多个生态插件,可以满足各种场景开发 大量的国产框架适配,可以为应用软件国产化提供更 ...
- Solon v2.2.1 发布。向 Graalvm Native 友好靠近
本次更新最重要的是增加了 Solon APT 项目,为更简单的完成 Graalvm Native 打包提供了帮助:其次是增加了 @ProxyComponent 和 @SolonMain 注解:以及优化 ...
- Solon 1.8.0 发布,云原生微服务开发框架
相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...
- fastposter v2.10.0 简单易用的海报生成器
fastposter海报生成器是一款快速开发海报的工具.只需上传一张背景图,在对应的位置放上组件(文字.图片.二维.头像)即可生成海报. 点击代码直接生成各种语言的调用代码,方便快速开发. 现已服务众 ...
随机推荐
- SkyWalking的学习之一
SkyWalking的学习之一 前言 最近在学习应用调优诊断等内容. 现在实际工作中实质上的拆分和微服务在售前阶段 所以真正用到链路的地方比较少. 但是人生都是要向前看的. 想着一方面提高自己. 一方 ...
- vue刷新当前组件的方法
一:v-if控制组件,先设false,再true强制刷新组件(有时会产生一种奇怪的效果) 1 <medical-record v-if="fresh" /> 2 3 t ...
- 深入理解 slab cache 内存分配全链路实现
本文源码部分基于内核 5.4 版本讨论 在经过上篇文章 <从内核源码看 slab 内存池的创建初始化流程> 的介绍之后,我们最终得到下面这幅 slab cache 的完整架构图: 本文笔者 ...
- Swift WisdomProtocol 面向协议编程(下)
WisdomProtocol 面向协议编程(下) @[TOC] WisdomProtocol SDK 面向协议编程 # Welcome to use WisdomProtocol WisdomProt ...
- Prism Sample 16-RegionContext
终于发现一个有趣的新知识了. 本例的核心是RegionContext,意思是一个区域的上下文.但与DataContext似乎并不相同. 先看一下整体思路. 在主窗体上只有一个Region: <G ...
- HTAP for MySQL 在腾讯云数据库的演进
摘要:MySQL在充分利用多核计算资源方面比较欠缺,无法同时满足在线业务和分析型业务的客户需求,而单独部署一套专用的分析型数据库意味着额外的成本和复杂的数据链路.本次主题将介绍腾讯云数据库为满足此类场 ...
- 芯烨小票打印机PHP打印代码
芯烨小票打印机PHP打印代码,案例中打印机为58mm打印机 58mm的机器,一行打印16个汉字,32个字母 80mm的机器,一行打印24个汉字,48个字母 本次添加了补打空格的代码,根据商品名称计算后 ...
- 2022-10-22:以下go语言代码输出什么?A:moonfdd1;B:编译错误;C:运行时 panic。 package main import “fmt“ func main() {
2022-10-22:以下go语言代码输出什么?A:moonfdd1:B:编译错误:C:运行时 panic. package main import "fmt" func main ...
- 2022-03-20:给定一棵多叉树的头节点head, 每个节点的颜色只会是0、1、2、3中的一种, 任何两个节点之间的都有路径, 如果节点a和节点b的路径上,包含全部的颜色,这条路径算达标路径, (
2022-03-20:给定一棵多叉树的头节点head, 每个节点的颜色只会是0.1.2.3中的一种, 任何两个节点之间的都有路径, 如果节点a和节点b的路径上,包含全部的颜色,这条路径算达标路径, ( ...
- 2022-01-04:一个无序数组长度为n,所有数字都不一样,并且值都在[0...n-1]范围上。 返回让这个无序数组变成有序数组的最小交换次数。 来自小红书。
2022-01-04:一个无序数组长度为n,所有数字都不一样,并且值都在[0-n-1]范围上. 返回让这个无序数组变成有序数组的最小交换次数. 来自小红书. 答案2022-01-04: 下标循环怼. ...