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之旅吧。