相对于 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
- (不会) 因为依赖变多而启动很慢(以小诺项目为例 “snowy-spring 版” 启动 30-50秒,“snowy-solon 版” 启动3-5秒)
似曾相识的体验,入门更简单,迁移很方便:
@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