相对于 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

项目仓库:

05-17 21:19