Solon v2.2.1 发布。向 Graalvm Native 友好靠近
本次更新最重要的是增加了 Solon APT 项目,为更简单的完成 Graalvm Native 打包提供了帮助;其次是增加了 @ProxyComponent 和 @SolonMain 注解;以及优化了 Solon Bean 的生命周期。
简介:
Solon 是一个高效的应用开发框架:更快、更小、更简单。生态情况包括:
- 150 来个能力扩展插件
- 支持 Java、Kotlin、Groovy 三种语言开箱即用的特性
- 官网 、 交流群,以及技术支持
- Solon Initializr
- 用户落地的开源或商业项目
Solon 的生产力价值:
- 更快、更小。带来IT成本、运维成本下降
- 更简单。节省人力成本
Solon 的国产性:
- Solon 在通讯框架、基础框架、能力框架,等方面提供了完整"国产"的方案支持。(Java 不是国产?这个没法了)
150来个生态插件,覆盖各种不同的应用开发场景:

相对于 Spring Boot 和 Spring Cloud 的项目:
- 启动快 5 ~ 10 倍。 (更快)
- qps 高 2~ 3 倍。 (更高)
- 运行时内存节省 1/3 ~ 1/2。 (更少)
- 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小)
- 同时支持 jdk8, jdk11, jdk17, jdk19。
似曾相似的体验,入门更简单,迁移很方便:
@Controller
public class App {
public static void main(String[] args) {
Solon.start(App.class, args, app->{
//手写模式
app.get("/", ctx -> ctx.outputAsJson("{message:'Hello world!'}"))
});
}
//注解模式
@Get
@Socket
@Mapping("/hello")
public String hello(String name) {
return String.format("Hello %s!", name);
}
}
入门探索视频(用户录制):
本次更新:
- 新增 solon.proxy 插件
- 新增 solon.proxy.apt 插件
- 新增 solon.graalvm 插件
- 新增 solon.graalvm.apt 插件
- 新增 solon.view 插件,为所有视频插件提供公共的配置和工具帮助
- 调整 mybatis-solon-plugin 插件,取消 mappers 检测异常,改为警告日志
- 调整 captcha-solon-plugin 插件,延迟内部 Bean 的构建时机
- 调整 BeanInvocationHandler 内部代码,简化并增加 AptProxy 调用
- 调整 dateAsFormat 配置增加对 LocalDate 和 LocalDateTime 的支持
- 调整 Plugin::Init 标为弃用, 并由 InitializingBean 接口接替
- 调整 Plugin 接口不再做为组件形态,有生命周期需求的可改为 LifecycleBean 接口
- 调整 Plugin Spi 实例化改为 Bean 模式,之前为不能注入的 New 模式
- 调整 AopContext 标注 beanOnloaded 为弃用。事件概念调整为容器内部的生命周期概念
- 调整 AopContext 增加 start(),stop(),lifecycle() 接口;强化生命周期管理概念
- 调整 Lifecycle 增加可异常选择,并标注 @FunctionalInterface
- 调整 调整打包时主函数的提示信息
- 增加 模板对 templates 目录的支持
- 增加 SerializationConfig,为渲染器提供统一的配置帮助
- 增加 ContextPathFilter 与 cfg().serverContextPath 配置同步
- 增加 应用属性配置内部引用增加默认值支持及环境变量引用
- 增加 @ProxyComponent 注解,使用时强依赖于 solon.proxy 插件
- 增加 @SolonMain 主解,作为 apt 生成 Graalvm Native 元信息配置的入口
- 增加 apt 代理实现方式(做为 asm 实现的补充),为全功能实现 Graalvm Native 打包提供支持
- 增加 InitializingBean 接口
- 增加 LifecycleBean 接口,扩展自 InitializingBean 和 Lifecycle
- 增加 ClassUtil 工具类
- sqltoy 升级为 5.2.37
项目仓库:
项目官网:
Solon v2.2.1 发布。向 Graalvm Native 友好靠近的更多相关文章
- Solon 1.5.67 发布,增加 GraalVm Native 支持
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 添加 solon.extend.graalvm 插件,用于适配 graalvm native image 模式 从此,solon 进入 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布
(新年巨献) RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布 历时数月,RDIFramework.NET V2.8版本发布了,感谢大家的支持. RDIFram ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布
历时数月,RDIFramework.NET V2.7 版本发布了,感谢大家的支持. RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开发系 ...
- go-wingui 2018 全新 v2.0 版本发布,包含重大更新!
go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...
- XXL-JOB v2.3.0 发布 | 易用性增强
转: XXL-JOB v2.3.0 发布 | 易用性增强 v2.3.0 Release Notes 1.[新增]调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略.立即补偿触发一次等: 2. ...
- Solon v2.0 大版本发布。提效率!降成本!
一个高效的 Java 应用开发框架:更快.更小.更简单.不是 Spring,没有 Servlet,也无关 JavaEE:新兴独立的开放生态.主框架仅 0.1 MB. 150来个生态插件,覆盖各种不同的 ...
- xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持
Xmake 是一个基于 Lua 的轻量级跨平台构建工具. 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时. 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLis ...
- graalvm native image 试用
graalvm 提供的native 模式,可以加速应用的启动,不同可以让应用不再依赖jvm 运行时环境,但是 也有一些限制 参考 https://github.com/oracle/graal/blo ...
- xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...
- Solon 1.2.12 发布,新的惊喜
Solon 一个类似Springboot的微型开发框架.强调:克制 + 简洁 + 开放的原则.力求:更小.更快.更自由的体验. 所谓更小: 内核0.1m,最小Web开发单位0.2m(相比Springb ...
随机推荐
- 基于 Traefik 的 Basic Auth 配置
前言 Traefik是一个现代的HTTP反向代理和负载均衡器,使部署微服务变得容易. Traefik可以与现有的多种基础设施组件(Docker.Swarm模式.Kubernetes.Marathon. ...
- 【机器学习】李宏毅——Flow-based Generative Models
前文我介绍了部分关于生成学习的内容,可以参考我这篇博文点此 前面介绍的各个生成模型,都存在一定的问题: 对于PixelRNN这类模型来说,就是从左上角的像素开始一个个地进行生成,那么这个生成顺序是否合 ...
- 2020强网杯青少赛Pursuing_The_Wind战队WRITEUP
在线文档:https://docs.qq.com/doc/DZkN0RFFaR1ZDdHhD 旧事拾荒,偶遇该文档,既发. 战队信息 战队名称:Pursuing_The_Wind 战队排名:12 ...
- LeetCode-03 无重复字符的最长子串(Longest Substring Without Repeating Characters)
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &qu ...
- 【Java】线程池梳理
[Java]线程池梳理 前言 线程池:本质上是一种对象池,用于管理线程资源.在任务执行前,需要从线程池中拿出线程来执行.在任务执行完成之后,需要把线程放回线程池.通过线程的这种反复利用机制,可以有效地 ...
- 为测试管理正名,华为云CodeArts TestPlan的守护之道
摘要:华为云CodeArts TestPlan既有公有云版本,也有下沉到私有云的版本. 本文分享自华为云社区<为测试管理正名,华为云CodeArts TestPlan的守护之道>,作者:云 ...
- Curve 文件存储在 Elasticsearch 冷热数据存储中的应用实践
Elasticsearch在生产环境中有广泛的应用,本文介绍一种方法,基于网易数帆开源的Curve文件存储,实现Elasticsearch存储成本.性能.容量和运维方面的显著提升. ES 使用 Cur ...
- ionic+vue+capacitor系列笔记--常见报错以及解决
1.Require statement not part of import statement.(@typescript-eslint/no-var-requires) 解决 .eslintrc.j ...
- c++ 跑酷小游戏之用户体验plus
#undef UNICODE#undef _UNICODE#include <iostream>#include <iomanip>#include <string> ...
- 1、Spring源码环境搭建
本文目的 完成Spring Framework5.x的源码构建 准备 官网:Spring Framework 使用5.x版本源码包构建 项目管理工具 gradle(没学过的先去找资料学习) 说明 Sp ...