打开 Java 新的大门,Solon v2.5.10 发布

news/2024/7/10 20:52:10 标签: java, 开源, 国产化, 信创, Solon

Solon__0">Solon 是什么框架?

Java 生态级应用开发框架。从零开始构建,有自己的标准规范与开放生态(历时五年,具备全球第二级别的生态规模)。与其他框架相比,解决了两个重要的痛点:启动慢,费内存

解决痛点?

由于Solon Bean容器的独特设计,不会因为扩展依赖变多而启动很慢(开发调试时,省时、爽快)!以知名开源项目“小诺”为例:

  • “snowy-spring 版” 启动 15-50秒
  • “snowy-solon 版” 启动3-5秒,启动内存节省1/3(有兴趣的,欢迎拉取代码体验)

相对于 Spring,有什么特点?

  • 启动快 5 ~ 10 倍。 (更快)
  • qps 高 2~ 3 倍。 (更高)
  • 运行时内存节省 1/3 ~ 1/2。 (更少)
  • 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小)
  • 同时支持 jdk8, jdk11, jdk17, jdk21, graalvm native image

入门探索视频(用户录制):

最近更新了什么?

  • 修订 CONTRIBUTING.md 规范了更多细节 (愿 Java 开发者共建)
    • https://gitee.com/noear/solon/blob/master/CONTRIBUTING.md
  • 新增 事务管理的 TranListener 机制支持!!!
    • https://gitee.com/noear/solon/issues/I88B7W
  • 新增 Mapping 函数对 TypeVariable 参数类型的识别支持!!!
  • 新增 Mapping 函数父类继承的支持(仅限 public)!!!
    • https://gitee.com/noear/solon/issues/I88B3O
  • 新增 Mapping 函数非公有告警提醒!!!(以后只支持 public,与父类继承保持统一)
  • 新增 FactoryManager 工具类,合并各种工厂管理,替代旧的 Bridge
    • https://gitee.com/noear/solon/issues/I88AZ3
  • 新增 ConverterFactory 接口,完善转换器机制
    • https://gitee.com/noear/solon/issues/I88AGG
  • 删除 SolonApp::onError,::enableErrorAutoprint 接口(已无用,留着有误导性)
    • https://gitee.com/noear/solon/issues/I88BFY
  • 删除 LogUtil::globalSet 接口(已无用,留着有误导性)
  • 弃用 SolonBuilder(已无用,且不简洁)
  • 弃用 InitializingBean(简化应用生命周期)
  • 调整 Get,Put,Post,Delete,Patch 注解,取消 ElementType.TYPE 目标
  • 调整 solon.logging 的 MDC.clear() 时机(安排到最外层)
  • 调整 数据源事务管理相关改为线程状态可继承(支持通过 FactoryManager 设置 threadLocalFactory)
    • https://gitee.com/noear/solon/issues/I88AZ3
  • 调整 所有模块的单测都升级为 junit5(落实最新的 CONTRIBUTING 规范)
  • 调整 water-solon-cloud-plugin 本地调试时服务注册改为被动检测(之前为主动上报)
  • 调整 HttpServerConfigure::enableSsl 允许自己设定 SSLContext(方便国密处理)
  • 增加 动态数据源注解 @DynamicDs("${ddsName}") 参数模板支持
  • 增加 Context::remotePort 接口
  • 增加 Context::remoteIp 接口,原 ip 接口标为弃用(与 remotePort 更配套)
  • 增加 @Init 函数对 AOP 的支持(有时候初始化也要用事务注解之类的)
  • 增加 配置提示元文件
  • 修复 solon.socketd.client.websocket 自动重连失效的问题
  • 拆分 solon-admin 为独立仓库
    • https://gitee.com/noear/solon-admin ,欢迎大家为它供献代码
  • 拆分 solon-maven-plugin 为独立仓库
    • https://gitee.com/noear/solon-maven-plugin ,欢迎大家为它供献代码
  • sqltoy 升为 5.2.69
  • mybatis-flex 升为 1.7.0

项目仓库地址?

  • gitee:https://gitee.com/noear/solon
  • github:https://github.com/noear/solon

http://www.niftyadmin.cn/n/5099178.html

相关文章

parameter的各种用法以及localparam的用法

parameter的各种用法以及localparam的用法 一、这种写法放在v文件或者是用来调用其他的ram文件都是正确的。 一、这种写法放在v文件或者是用来调用其他的ram文件都是正确的。 module para_local();parameter a 10; // 第一种用法 parameter a 4d10; // 第二种用法 para…

基于R329 SOC智能音响开发编译环境搭建

R329智能音响开发编译环境搭建 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务, R329编译命令 source build/envsetup.sh lunch make -j4 pack 编译工程选择 baidu_panshan

Apache Dubbo的主要项目模块

Apache Dubbo的项目结构或者主要项目模块如下所示:

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.7 拖放事件

本节对应的视频讲解:B_站_链_接 【QT开发笔记-基础篇】 第4章 事件 4.7 拖动事件 本章要实现的整体效果如下: QEvent::DragEnter ​ 当拖动文件进入到窗口/控件中时,触发该事件,它对应的子类是 QDragEnterEvent QEvent::DragLe…

CodePlan

CodePlan论文解读 最近在看老师给的LLM-Agent论文,在这记录一下 CodePlan: Repository-level Coding using LLMs and Planning【论文】 旨在解决储存库级别的coding task,提出一个框架called CodePlan综合多步骤的编辑链,其中每个步骤都导…

QCC51XX-QCC30XX系列开发教程(实战篇) 之 12.2-空间音频架构

查看全部教程开发请点击:全网最全-QCC51xx-QCC30xx(TWS)系列从入门到精通开发教程汇总(持续更新中) ==================================================================== 版权归作者所有,未经允许,请勿转载。 ==========================================

Qt应用程序输出日志的方法

本文介绍Qt应用程序输出日志的方法。 Qt应用程序发布后,应用程序有时会出现一些问题,程序运行过程中的信息记录显得尤为重要,这就要求应用程序可以输出日志,通过日志方便我们分析,解决问题。 Qt对日志的输出提供了较…

如何计算卡牌游戏中的获胜者分数

简介 卡牌游戏一直是人们喜爱的娱乐方式之一。在卡牌游戏中,计算获胜者的分数是一个重要的问题。本文将介绍如何使用递归和动态规划两种方法来计算卡牌游戏中的获胜者分数。 递归解法 在递归解法中,我们定义了两个函数f1和g1,分别表示先手…