精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

springboot的輕量替代框架-Solon

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-09-30 10:55 ? 次閱讀

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
    +關注

    關注

    19

    文章

    2960

    瀏覽量

    104562
  • 開發
    +關注

    關注

    0

    文章

    367

    瀏覽量

    40811
  • 框架
    +關注

    關注

    0

    文章

    399

    瀏覽量

    17437
  • SpringBoot
    +關注

    關注

    0

    文章

    173

    瀏覽量

    169
收藏 人收藏

    評論

    相關推薦

    介紹一種OpenAtom OpenHarmony系統適配方案

    本文在不改變原有系統基礎框架的基礎上, 介紹了一種OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)系統適配方案。
    的頭像 發表于 03-05 09:24 ?1070次閱讀
    介紹一種OpenAtom OpenHarmony<b class='flag-5'>輕</b><b class='flag-5'>量</b>系統適配方案

    SpringBoot知識總結

    SpringBoot干貨學習總結
    發表于 08-01 10:40

    mybatis支持數據庫兼容的方案

    一個的方案, 令mybatis支持數據庫兼容
    發表于 04-09 17:44

    一文解析SpringBoot2整合SSM框架

    SpringBoot2整合SSM框架詳解
    發表于 06-09 16:43

    【入門】1 升級應用框架固件

    本帖最后由 jf_39160458 于 2021-5-21 16:04 編輯 首次拿到開發板后,開發板可能內置不是應用框架的固件,此時需要我們自己刷機。刷機流程如下:應用框架
    發表于 05-21 15:51

    怎樣去使用springboot

    怎樣去使用springboot呢?學習springboot需要懂得哪些?
    發表于 10-25 07:13

    Springboot整合netty框架實現終端、通訊板子(單片機)TCP/UDP通信案例

    如何springboot和netty案例的源代碼一個springboot整合netty框架的開發小案例,實現服務端與單片機終端實時通信的通訊架構案例。物聯網通信給板子下發指令案例附帶源碼及整合流程步驟
    發表于 12-29 18:55 ?20次下載
    <b class='flag-5'>Springboot</b>整合netty<b class='flag-5'>框架</b>實現終端、通訊板子(單片機)TCP/UDP通信案例

    如何移植OpenHarmony系統

    摘要:本文簡單介紹OpenHarmony系統移植,會分多篇
    的頭像 發表于 02-25 12:14 ?2995次閱讀
    如何移植OpenHarmony<b class='flag-5'>輕</b><b class='flag-5'>量</b>系統

    OpenHarmony系統開發【1】初始OH

    本文簡單介紹OpenHarmony、系統、小型系統、標準系統的差異,以及相關的官方資料和文檔 適合群體: 第一次接觸OpenHarmony、或者想要對OpenHarmony有一個全面的認知
    發表于 02-25 17:49 ?970次閱讀

    為什么建議你替換掉SpringBoot框架中的Tomcat?

    SpringBoot框架中,我們使用最多的是Tomcat,這是SpringBoot默認的容器技術,而且是內嵌式的Tomcat。
    的頭像 發表于 01-07 10:26 ?1064次閱讀

    Web框架替代方案分享(上)

    上周,我們從框架試圖解決哪些核心問題的角度出發,考察了使用框架的不同好處和代價,重點放在聲明性編程、數據綁定、反應性、列表和條件。今天,我們來看看能否在 Web 平臺上找到替代方案。
    的頭像 發表于 03-20 14:51 ?473次閱讀

    Web框架替代方案分享(中)

    上周,我們從框架試圖解決哪些核心問題的角度出發,考察了使用框架的不同好處和代價,重點放在聲明性編程、數據綁定、反應性、列表和條件。今天,我們來看看能否在 Web 平臺上找到替代方案。
    的頭像 發表于 03-20 14:51 ?525次閱讀

    Web框架替代方案分享(下)

    上周,我們從框架試圖解決哪些核心問題的角度出發,考察了使用框架的不同好處和代價,重點放在聲明性編程、數據綁定、反應性、列表和條件。今天,我們來看看能否在 Web 平臺上找到替代方案。
    的頭像 發表于 03-20 14:51 ?535次閱讀

    什么是 SpringBoot

    本文從為什么要有 `SpringBoot`,以及 `SpringBoot` 到底方便在哪里開始入手,逐步分析了 `SpringBoot` 自動裝配的原理,最后手寫了一個簡單的 `start` 組件,通過實戰來體會了 `
    的頭像 發表于 04-07 11:28 ?1268次閱讀
    什么是 <b class='flag-5'>SpringBoot</b>?

    Quarkus是SpringBoot替代品嗎?

    SpringBoot框架不用多介紹,Java程序員想必都知道。相對來說熟悉Quarkus的人可能會少一些。Quarkus首頁放出的標語:超音速亞原子的Java(Supersonic Subatomic Java)。
    的頭像 發表于 11-10 10:01 ?688次閱讀
    Quarkus是<b class='flag-5'>SpringBoot</b>的<b class='flag-5'>替代</b>品嗎?