本次更新最重要的是增加了 Solon APT 项目,为更简单的完成 Graalvm Native 打包提供了帮助;其次是增加了 @ProxyComponent 和 @SolonMain 注解;以及优化了 Solon Bean 的生命周期

简介:

Solon 是一个高效的应用开发框架:更快、更小、更简单。生态情况包括:

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);
}
}

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

《bilibili - solon 入门探索》

本次更新:

  • 新增 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 友好靠近的更多相关文章

  1. Solon 1.5.67 发布,增加 GraalVm Native 支持

    Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 添加 solon.extend.graalvm 插件,用于适配 graalvm native image 模式 从此,solon 进入 ...

  2. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布

    (新年巨献) RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本发布 历时数月,RDIFramework.NET V2.8版本发布了,感谢大家的支持. RDIFram ...

  3. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.7 版本发布

    历时数月,RDIFramework.NET V2.7 版本发布了,感谢大家的支持. RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开发系 ...

  4. go-wingui 2018 全新 v2.0 版本发布,包含重大更新!

    go-wingui 2018 全新 v2.0 版本发布,包含重大更新!使用新版CEF内核Chromium 63.0.3239.109,页面可以使用最新的css3,html5技术.使用delphi7重写 ...

  5. XXL-JOB v2.3.0 发布 | 易用性增强

    转: XXL-JOB v2.3.0 发布 | 易用性增强 v2.3.0 Release Notes 1.[新增]调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略.立即补偿触发一次等: 2. ...

  6. Solon v2.0 大版本发布。提效率!降成本!

    一个高效的 Java 应用开发框架:更快.更小.更简单.不是 Spring,没有 Servlet,也无关 JavaEE:新兴独立的开放生态.主框架仅 0.1 MB. 150来个生态插件,覆盖各种不同的 ...

  7. xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持

    Xmake 是一个基于 Lua 的轻量级跨平台构建工具. 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时. 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLis ...

  8. graalvm native image 试用

    graalvm 提供的native 模式,可以加速应用的启动,不同可以让应用不再依赖jvm 运行时环境,但是 也有一些限制 参考 https://github.com/oracle/graal/blo ...

  9. xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能 ...

  10. Solon 1.2.12 发布,新的惊喜

    Solon 一个类似Springboot的微型开发框架.强调:克制 + 简洁 + 开放的原则.力求:更小.更快.更自由的体验. 所谓更小: 内核0.1m,最小Web开发单位0.2m(相比Springb ...

随机推荐

  1. Rust学习之旅(读书笔记):枚举 (Enum)

    Rust学习之旅(读书笔记):枚举 (Enum) C 语言的枚举类型很弱,不如后来的语言,也不如之前的语言.在 C 语言里面枚举量就是一个名字,更方便的定义常量.今天读了<The Rust Pr ...

  2. C++进阶(unordered_set+unordered_map模拟实现)

    unordered_set unordered_set是以无特定顺序存储唯一元素的容器,并且允许根据它们的值快速检索单个元素,是一种K模型. 在unordered_set中,元素的值同时是它的key, ...

  3. 物联网 IOT 设备如何脱离信息孤岛?

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/tb5eOFNUZLtPPLipLAh3vA 本文大概 1435 个 ...

  4. CH9126常见问题解决(持续更新)

    1. 有关CH9126时区的问题 答:当CH9126作为SNTP服务器的时候,通过串口设置的时间为东八(北京)时区的绝对时间.但是如果是Windows向CH9126SNTP服务器要时间,那么Ch912 ...

  5. GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes

    1. 论文简介 论文题目:GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes Paper地址 ...

  6. ESXI 7.0封装网卡驱动

    前段时间配置的All In One 主机,由于华擎H410M-ITX/AC主板的板载网卡为intel I219-V,在安装ESXI后网卡无法驱动.查询之后发现原来ESXI7.0.2的版本不含该网卡驱动 ...

  7. (四)elasticsearch 源码之索引流程分析

    1.概览 前面我们讨论了es是如何启动,本文研究下es是如何索引文档的. 下面是启动流程图,我们按照流程图的顺序依次描述.     其中主要类的关系如下:     2. 索引流程 我们用postman ...

  8. 【SpringBoot实战专题】「开发实战系列」从零开始教你舒服的使用RedisTemplate操作Redis数据

    SpringBoot快速操作Redis数据 在SpringBoot框架中提供了spring-boot-starter-data-redis的依赖组件进行操作Redis服务,当引入了该组件之后,只需要配 ...

  9. C语言常用知识总结

    在 C 语言中,常量是一种固定值的标识符,它的值在程序执行期间不会改变. C 语言中有几种不同类型的常量: 字符常量:用单引号括起来的单个字符,例如 'A'.'b'.'1' 等. 字符串常量:用双引号 ...

  10. Java基础篇——注解和反射

    注解 注解Annotation可以被其他程序(编译器)读取,常见的有@override 内置注解 @Override 适用于修饰方法,表明重写父类中的一个方法 @Deprecated 用于修饰类.方法 ...