写点什么

springboot 的轻量替代框架 -Solon

作者:源字节1号
  • 2024-07-30
    浙江
  • 本文字数:1459 字

    阅读完需:约 5 分钟

springboot的轻量替代框架-Solon

Java 之所以是广泛使用的编程语言,不仅仅因为其具有跨平台性、面向对象、可靠性,还有很重要的一点是强大的生态系统,spring 家族的一系列框架,对 Java 的崛起有着不可忽视的作用。

学 Java 的不可能不知道 Spring,今天给大家介绍一个号称 springboot 的轻量替代框架-Solon,这个框架还是国人开发的,真是一个单挑 spring 的男人。

认识 Solon

Solon 是一个参考了 Spring Boot 和 Javalin 的设计而创建的框架。它吸取了这两者的优点并避免了繁重的设计,使得它能够支持 HTTP、WebSocket 和 Socket 等三种通信信号接入。

Solon 只需要 2MB 的大小就可以支撑完整的 MVC 开发,并且在启动方面只需要 0.1 秒的时间。相比之下,一个普通的 Spring Boot MVC 项目通常需要起步 20MB 以上的内存占用,并且启动时间要超过 3 秒,同时其 QPS 性能也较弱。

相比 springboot,启动快 5 ~ 10 倍;qps 高 2~ 3 倍;运行时内存节省 1/3 ~ 1/2;打包可以缩到 1/2 ~ 1/10;同时支持 jdk8, jdk11, jdk17, jdk20, graalvm native。

  • 克制、简洁、高效、开放、生态

  • 支持 JDK8、JDK11、JDK17、JDK20

  • Http、WebSocket、Socket 三种信号统一的开发体验(俗称:三源合一)

  • 支持“注解”与“手动”两种模式,按需自由操控

  • Not Servlet,可以适配任何基础通讯框架(最小 0.3m 运行 rpc 架构)

  • 独特的 IOC/AOP 容器设计。不会因为插件变多而启动变很慢

  • 支持 Web、Data、Job、Remoting、Cloud 等任何开发场景

  • 兼顾 Handler + Context 和 Listener + Message 两种架构模式

  • 强调插件式扩展,可扩展可切换;适应不同的应用场景

  • 支持 GraalVm Native 打包

  • 允许业务插件“热插”、“热拔”、“热管理”



上手 Solon

web 开发的模式和 springboot 基本一致,但是注解和 springboot 略有区别,具体区别可以看它的官方文档。

一个重要的区别是,Solon 不是基于 Servlet 的开发框架,虽然使用起来与 Springboot 相似的体验,但内部使用 Context 包装请求上下文(底层为:Context + Handler 架构)。

创建 Maven 项目,引入依赖

< parent > < groupId >org.noear< /groupId > < artifactId >solon-parent< /artifactId > < version >2.3.6< /version > < /parent >< dependencies > < dependency >   < groupId >org.noear< /groupId >   < artifactId >solon-web< /artifactId > < /dependency >< /dependencies >
复制代码

编写启动类代码

@SolonMainpublic class App{ public static void main(String[] args){   long start = System.currentTimeMillis();   Solon.start(App.class, args);   long end = System.currentTimeMillis();   System.out.println("启动耗时:" + (end - start) + "ms"); }}
复制代码

编写 Controller

@Controllerpublic class DemoController { @Mapping("/hello") public String hello(String name){   return "Hello " + name; }}
复制代码

运行,测试



可以看出来,启动还是非常非常快的



打包



啊?只有 4kb?

有点儿惊人,为此,我专门去新建了个 springboot 项目,也是简单的一个接口,打包



好吧,这个项目也是 4k,看来太简单的项目看不出来区别。等以后写新项目玩儿的时候再试试。

顺便测试了一下启动时间



启动时间确实还是 Solon 更快!

小结

再来看看 Solon 的官方文档,文档写的很详细,功能很齐全,Solon 的生态虽然没有 spring 那么强大,但小型项目已经完全可以胜任。

感兴趣的小伙伴儿们快快用起来吧,对于自己的项目很适合,毕竟自己的服务器内存和空间比较小,同样的项目占用更小的空间和内存还是很香的!

如若转载,请注明出处:开源字节   https://sourcebyte.vip/article/380.html

用户头像

源字节1号

关注

一个着迷于技术又喜欢不断折腾的技术活跃者 2022-03-09 加入

一个着迷于技术又喜欢不断折腾的技术活跃者。喜欢并热爱编程,执着于努力之后所带来的美好生活!

评论

发布
暂无评论
springboot的轻量替代框架-Solon_开源_源字节1号_InfoQ写作社区