一个更现代感的 Java "生态型"应用开发框架:更快、更小、更自由。不是 Spring,没有 Servlet,也无关 JavaEE;新兴独立的开放生态 (已有150来个生态插件) 。主框架仅 0.1 MB。
相对于 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(@Param(defaultValue = "java") String name) {
return String.format("Hello %s!", name);
}
}
入门探索视频(用户录制):
本次更新:
- 新增 solon.web.stop 插件,替代 solon.extend.stop(原 host 配置,更名为 whitelist)
- 插件 local-solon-cloud-plugin 添加事件ACK、重试守护、自动延时、定时事件支持(无持久化,即重启数据丢失)
- 插件 solon.scheduling 添加 @EnableAsync 注解,用于控制异步是否启用
- 插件 solon.extend.async 标为弃用(由 solon.scheduling 替代)
- 插件 solon.extend.retry 标为弃用
- 插件 solon.schedule 标为弃用(由 solon.scheduling.simple 替代)
- 增加 solon.test 对单测类的包名检测,如果无包则异常提示
- 增加 solon.web.cors 基于路由拦截器的实现,及增强代码复用性
- 增加 MimeType.TEXT_JSON_VALUE 值(比 APPLICATION_JSON_VALUE 简短些)
- 增加 RunUtil 工具类,由 Util 部分接口分离
- 调整 solon.scheduling.simple 对固定频率与固定延时的处理
- 调整 solon.scheduling.quartz 对 name 的配置支持,及更多异常提醒
- 调整 quatz-solon-plugin 对 name 的配置支持
- 调整 quatz 相关适配增加 job group 的支持(使用 solon.app.name)
- 调整 solon 对包名检测的处理逻辑(保持也 solon.test 一样)
- 调整 solon 安全停止时间比较为 3:7
- 调整 在调整模式下才配置文件加载的打印,之前总是打印
生态架构图:
进一步了解 Solon:
- 《想法与架构笔记》
- 《生态预览》
- 《与 Spring Boot 的区别?》
- 《与 Spring Cloud 的区别?》
项目仓库:
- gitee:https://gitee.com/noear/solon
- github:https://github.com/noear/solon