用 Java?試試國產輕量的 Solon v1.11.4(帶影片)

帶刺的坐椅發表於2022-12-13

一個更現代感的 Java 應用開發框架:更快、更小、更自由。沒有 Spring,沒有 Servlet,沒有 JavaEE;獨立的輕量生態。主框架僅 0.1 MB。

@Controller
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args);
    }

    @Get
    @Socket
    @Mapping("/hello")
    public String hello(@Param(defaultValue = "java") String name) {
        return String.format("Hello %s!", name);
    }
}

入門探索影片(使用者錄製):

《bilibili - solon 入門探索》

相對於 Spring Boot 和 Spring Cloud 的專案:

  • 啟動快 5 ~ 10 倍。 (更快)
  • qps 高 2~ 3 倍。 (更高)
  • 執行時記憶體節省 1/3 ~ 1/2。 (更少)
  • 打包可以縮小到 1/2 ~ 1/10;比如,300Mb 的變成了 23Mb。 (更小)
  • 基於服務 name 進行註冊發現 與 k8s svc 相互對應
  • 支援 Service Mesh 架構部署方案
  • 同時支援 jdk8, jdk11, jdk17, jdk19
  • 沒有 Spring,沒有 Servlet,沒有 JavaEE;獨立的輕量生態

本次更新:

  • 新增 solon.web.webdav 外掛
  • 新增 solon.logging.simple 外掛(替代 solon.logging.impl)
  • 新增 solon.scheduling 外掛
  • 新增 solon.scheduling.simple 外掛(替代 solon.schedule;更標準化)
  • 新增 solon.scheduling.quartz 外掛(替代 quartz-solon-plugin;更標準化)
  • 新增 quartz-solon-cloud-plugin 外掛
  • 外掛 quartz-solon-plugin 增加函式執行支援,增加持久化和遠端管理支援(程式碼微調整)
  • 外掛 local-solon-cloud-plugin 新增 server 配置支援(只能指向本地,存放資料)
  • 外掛 solon.web.staticfiles 允許 maxAge=-1 配置(從而取消 URLConnection 的快取)
  • 外掛 solon.web.staticfiles 增加資源倉庫預熱支援
  • 外掛 solon.boot.jlhttp 調整server程式碼,不再限制 method
  • 外掛 solon.boot 調整 coreTheads,maxTheads 配置,支援部數模式 x16(表示cpu核數的16倍)
  • 增加 enableWebSocketMvc,enableSocketMvc 開關控制
  • 增加 mybatis-solon-plugin 外掛對 Mappers 有無的檢查並提示
  • 增加 DownloadedFile,UploadedFile 獲取屬性,原欄位標為棄用(後面會改為私有)
  • 調整 solon.cache.* 外掛,開放 CacheService 內部的 client
  • 調整 ctx.body() 優先採用 request content-type 上的編碼
  • 修復 servletContext 使用 cookieRemove() 移除 cookie 時,遺留空值 cookie 的問題
  • 修復 除錯模式下,靜態檔案會快取的問題
  • 測試 nami 做為註解式 http 客戶端的使用
  • 升級 smart-http 為 1.1.19
  • 升級 wood 為 1.0.7
  • 升級 sqltoy 為 5.2.25

進一步瞭解 Solon:

專案倉庫:

相關文章