1. 程式人生 > 其它 >Solon輕量級Web框架:俄烏戰爭後的抉擇(一)

Solon輕量級Web框架:俄烏戰爭後的抉擇(一)

引言

隨著俄烏戰爭局勢日益焦灼,西方各國相繼宣佈了要全面制裁俄羅斯的訊息,美國更是將俄羅斯列入科技出口管制名單中。令人意外的是,俄烏戰爭影響範圍之廣,幾乎波及了全球科技網。以谷歌、蘋果、微軟、英特爾、Facebook、亞馬遜、戴爾、Oracle 為首的 20 多家科技巨頭相繼宣佈對俄羅斯進行制裁。

此次俄羅斯的遭遇,給我們一個非常生動的警示:網際網路空間的話語權在當今這個時代,對於一個國家的生死存亡有決定性作用,而掌控網際網路空間話語權的網際網路巨頭們,在關鍵時刻,絕對是有國界的,是有自己明確立場的。

而在Web框架領域,一個自主的、可控的框架尤為重要。這時Solon進入我的視野,當然選擇新的Web框架最早是從華為受制裁就開始考量的。在綜合學習成本,開發難度,自主性等多方面權衡後,選擇了Solon。

Solon:一個輕量級Web框架

官方對Solon的描述:一個更現代感的應用開發框架:更快、更小、更自由。 Git原始碼:https://gitee.com/noear/solon 官方文件:https://solon.noear.org

本人也基於Solon輕量級Web框架開發路一個小專案 https://gitee.com/hiro/melon-data-simple ,打包後大小6.31M,完美替代Springboot + Mybatis框架,專案基礎程式碼部分翻譯於 Ruoyi (官網 http://doc.ruoyi.vip/ )。

值得一說的是Solon主要參考 SpringBoot 和 Javalin ,吸取了諸多優點,更重要的始終保持0.1Mb 的身材,超高的跑分,良好而自由的使用體驗。


比SpringBoot更優的是,程式碼自由,除去註解外的使用方式:

//手動獲取配置(Props 為 Properties 增強版)
Props db = Solon.cfg().getProp("db");

//手動獲取容器裡的Bean
UserService userService = Aop.get(UserService.class);

//手動監聽http post請求
Solon.global().post("/user/update", x-> userService.updateById(x.paramMap()));

//手動添加個RPC服務
Solon.global().add("/rpc/", HelloService.class, true);

//手動獲取一個RPC服務消費端
HelloService helloService = Nami.builder().create(HelloService.class);

//手動為容器新增元件
Aop.wrapAndPut(DemoService.class);

如果想了解框架想法:點選這裡

小結

在制裁背景下您選擇Solon,在硬體逐年漲價的情況下,資源消耗更小的Solon也是一個很好的體驗。
作為苦逼的程式設計師,在開發一樣的情況下,快速啟動是我選擇Solon的最終原因。程式設計師們,跟我一起開始Solon之旅吧。

下一篇:Solon輕量級Web框架:從Web請求開始(二)