本次发布,重点测试和验证了在 java、kotlin、groovy 三种 jvm 语言里,开箱即用的特性。并发布 Solon Initializr:
- https://solon.noear.org/start/ (也即将发布 idea 插件)
最近,与小诺开源团队合作发布了:Snowy-Solon( https://gitee.com/xiaonuoadmin/snowy-solon)
- 有用户说原来他的电脑运行 snowy ,需要50秒启动占2g内存,现在只用5秒启动占300m内存
- 有用户说原来启动 snowy 要15秒,现在3秒多点(不同电脑表现不同)
- 有用户说原来认为是骗人的,现在信了(指更快、更小)
- 有用户说他们的招聘要求已标注 “熟悉 Solon 框架的优先考虑”(这是难得好的新开始)
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);
}
}
入门探索视频(用户录制):
本次更新:
- 新增 bean-searcher-solon-plugin 插件
- 插件 solon-maven-plugin 增加 jdk19 打包支持
- 插件 snowflake-id-solon-cloud-plugin 增加 workId 可配置支持
- 插件 solon.test 增加 AbstractHttpTester 类,名字比 HttpTestBase 顺眼些
- 插件 solon.test Http 测试器 增加 http(int port) 接口,方便本机所有http端口测试(比如 mock server)
- 插件 solon-test-junit4 增加 mockito-core 依赖,方便 mock 测试
- 增加 手动检测是否有类存在的方式 Utils.hasClass(() -> AuthUtil.class)
- 修复 activerecord-solon-pllugin::修复在 ActiveRecordPlugin::start 前不能注入 DbPro 的问题
- 修复 solon.cache.redisson 默认缓存时间没有生效的问题,及缓存键头没用起来的问题
- 调整 solon.cache.jedis 缓存键以':'为间隔
- 调整 Props::getByParse 增加默认值支持
- 调整 Props::getByExpr 增加默认值支持
- 调整 Condition 注解重新规范条件属性名
- 调整 AopContext 增加 Condition::onMissingBean 条件属性支持
- 优化 solon.test 排除只读类成为代理类
- 优化 Gateway 根据路由记录数量,自动切换主处理
- 优化 http 输出长度模式 与 chunked模式 的自动切换
- 升级 mockito 为 4.11.0
- 升级 beetl 为 3.14.1.RELEASE
- 升级 sqltoy 为 5.2.34
- 升级 snack3 为 3.2.54 ,支持 kotlin data