Solon v2.2.17 发布,Java 新的生态型应用开发框架
Solon 是什么框架?
一个,Java 新的生态型应用开发框架。它从零开始构建,有自己的标准规范与开放生态。与其他框架相比,它解决了一个重要的痛点:启动慢,费资源。
解决痛点?
由于Solon Bean容器的独特设计,Solon 不会因为扩展依赖变多而启动很慢(开发调试时,爽快)!!!以开源项目“小诺”为例:
- “snowy-spring 版” 启动 30-50秒
- “snowy-solon 版” 启动3-5秒(有兴趣的,可以拉取代码体验)
以前有几个句这么说的:“时间就是金钱,效率就是生命”,“天下武功,唯快不破”。
相对于 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
似曾相识的体验,入门更简单,迁移很方便:
@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 Native 开发
- 完成 Solon Aot 开发
- 增加 @Inject 注入 bean 的 required 检测支持
- 增加 缓存服务适配类可传入客户端的构建函数
- 增加 DynamicDataSource 无参构造函数,方便定制
- 增加 CloudDiscoveryService 代理类,以支持发现代理的配置
- 增加 ctx:pathAsLower() 接口
- 增加 solon.boot.undertow 原生编译配置申明
- 增加 solon.sessionstate.jwt 原生编译配置申明
- 增加 solon.logging.logback 原生编译配置申明
- 增加 solon.logging.log4j2 原生编译配置申明
- 增加 solon cloud 发现代理的配置支持(在 k8s 环境,可直接转发到 k8s sev 上)
- 调整 aot 注册时对空类名进行过滤
- 增加 aot 配置注入实体的自动登记处理
- 增加 aot 函数包装的返回可序列化类型的自动登记处理
- 增加 aot 有注入jdk代理的自动登记处理
- 增加 aot jdbc 驱动的的自动登记处理
- 增加 aot 通用反射代理的自动登记处理
- 调整 aot 完成后的关闭处理方式
- 增强 solon.boot.jetty 在原生运行时兼容性
- 增强 solon.boot.undertow 在原生运行时兼容性
- 调整 Context::commit 函数位置,迁移到别处
- 调整 预热工具在 aot 时跳过执行
- 调整 MethodWrap 和 BeanWrap 的两个异常解包处理
- 解决 solon.aot 部分类型不能解析识别的问题
- smart-socket 升级为 1.5.27
- smart-http 升级为 1.2.0
- fastjson2 升为 2.0.31
- mybatis flex 升为 1.2.1
- polaris 升为 1.12.2
- beetl 升为 3.15.4.RELEASE
- beetlsql 升为 3.22.0-RELEASE
- sqltoy 升为 5.2.45
- liteflow 升为 2.10.2
- forest 升为 1.5.31
- dbvisitor 升为 5.3.1