单挑Spring!结果会怎么样?

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

哈喽,大家好,我是了不起。最近啥事儿没有,真的是只能摸鱼了,前几天摸鱼摸出了Java程序员摸鱼的时候干点儿啥,今天又摸出了这篇文章~

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生态架构图

官网:https://solon.noear.org/

项目地址:https://gitee.com/noear/solon

上手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>

编写启动类代码

@SolonMain
public 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

@Controller
public class DemoController {

    @Mapping("/hello")
    public String hello(String name){
        return "Hello " + name;
    }

}

运行,测试

图片图片

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

图片图片

打包

图片图片

啊?只有4kb?

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

图片图片

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

顺便测试了一下启动时间

图片图片

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

小结

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

责任编辑:武晓燕 来源: Java技术指北
相关推荐

2018-07-31 15:38:07

SDN物联网IIoT

2024-08-22 08:50:51

2023-10-23 19:58:01

Android

2014-02-18 11:24:07

云计算PaaS

2021-09-01 10:50:21

int main()return 0语言

2020-04-28 08:10:42

编程Resflux应用

2021-07-06 07:27:44

函数Return编译器

2024-05-07 08:46:06

GoGoogle云原生

2020-05-11 17:08:28

苹果WindowsMacBook

2024-10-14 09:58:06

并发编程共享

2020-11-19 14:28:02

MacBookiOS苹果

2019-07-19 15:42:57

Hadoop大数据YuniKorn

2018-08-07 09:38:06

2020-11-27 07:45:31

JVM垃圾回收

2015-07-23 11:49:31

程序猿

2020-05-06 08:44:20

等保2.0WAFIDC

2009-11-20 08:53:15

GoogleChrome系统发布

2009-11-18 09:38:10

GoogleChrome OS谷歌

2017-08-09 09:05:00

旅游智慧

2018-01-05 10:48:54

混合云尚阳科技IDC
点赞
收藏

51CTO技术栈公众号