1、必須要有,不然就永遠不會有
應用開發框架,雖然沒有芯片、操作系統、數據庫、編程語言這些重要。但是最終呈現在用戶面前的,總是有軟件部分。而軟件系統開發,一般都需要應用開發框架,它是軟件系統的基礎性部件之一。
很多很多軟件系統都會有 Java 開發的部分,尤其是政府部門的軟件系統大量的使用了 Java。市場非常的大,我們有很多的 Java 程序員,更有很多技術大能,也爲很多全球級的項目供獻過力量。理所應該當也要有自己的“生態級”應用開發框架,不是說卡不卡脖子的問題,而是不好意思沒有啊!外面可是隔三差五的出語言。
國內現在有很多好的“功能性能框架”,也有很多好的“快速開發框架”,還有很多好的“後臺腳手架”。但是沒有像 Spring 這樣生態級的框架出現。個人覺得,這應該是有問題的、是可惜的、是遺憾的。
想要搞個 Java 生態級的應用開發框架。一般是以年爲開發時間單位的(需要漫長的時間打磨),一般是不賺錢的。還有 Spring 生態這個巨人存在。但,真的有很多人是期待的:一個輕量的,更現代感的,最好還是國產的。
剛開始的確會很難;剛開始可能不如人家的完善;剛開始會有很多人質疑和漫罵。再難能有芯片難???不是說非要替換代別人,而是必須要有,不然就永遠不會有。
2、一個美好的“生態級”應用開發框架
應該是所有“功能型”框架的好朋友,就像水、土、空氣一樣串起萬物生長;應該是接地氣些,方便所有技術員快速學習和使用。比如:
- 應該能自動裝配擴展能力(方便做第三方擴展)
- 應該有很多的第三方合作與便利適配(生態嘛)
- 應該有IOC 和 AOP(確實更便利)
- 應該啓動很快(必須要遠超它的前輩)
- 應該內存更少,尤其是在啓動時和靜默時的內存(休息時,不該喫那麼多內存)
- 應該很少量的代碼(不然學習太幸苦了)
- 應該有自己的思考方式和性格特性(抄過來的不好)
其實要求也不高,只要道心穩,慢慢打怪升級。最近有位技術大牛說:國外有 spring 和 apache,國內有 solon 和 dromara。
3、論 Solon 框架的意義
是一個國產的生態級 Java 應用開發框架(已發具備全球第二級別的生態)。開玩笑,兩三百個生態擴展呢。
- 國內第一個
從零開始構建,有自己的標準規範與開放生態。尤其沒有使用 javaee 的接口規範(它改包名了,可麻煩)。會借鑑與善用前人的成果,但絕對是原創。
- 爲什麼說是生態呢
沒有功能,沒有集成。都是基於標準與規範的擴展與適配。同一個需求,可以有很多不同的方案選擇。這是架構的美感。當然別人家的生態框架也會是這樣。
- 提供不同的選擇
以前只有包子,沒得選,不管什麼場景只有包子喫。而且很多人都習慣了這樣。現在是還有餅乾和花生米,你可以按需選擇。
- 助力信創國產化
信創,講國產可控。但是很多軟件系統用了 spring 開發。之前是沒得選。現在可以用 solon 了。
- 助力國產語言的成長
當有適合的國產語言出現時,可以快速實現副本遷移。因爲 solon 是原創,有自己的標準規範與開放生態,遷移起來很方便。開發語言,有好的生態框架,能優化用戶體驗,加速成長。
- 助力部訓機構使用國產框架進行 Java 教學
一個生態級的應用開發框架。無形之中,會有很多模式,有很多術語。應用於教學,對國產開發環境是好事。
- 助力高校使用國產框架進行 Java 教學
Solon 的願景裏,會有很多相關書出現。以 Solon 的視角去展現 Java。 以前是沒得選,以後可以選 Solon 相關的書,進行教學。
- 助力 Java 開源項目成長
以前嘛,我們的 Java 開源項目很多是“面向 Spring 編程的”。現在可以迴歸本源,“面向 Java 編程”(同時也適配下 Solon)。Java 的世界很大,有很多的不同的生態框架。
- 助力 Java 程序員的成長
有些 Java 程序員,如果沒有 Spring 是不能編程的。其實 Java 的世界很大,Java 之外的世界更大。見識不同的生態應用開發框架,見識不同的編程語言,可以看見更大的世界。
4、Solon 生態框架是應運而生的
這不是吹牛,之前真的是沒有,這是第一個生態級的。打磨五六年了。暫時,它還真是中國人的 Java 生態框架(沒別的啦)。
特性:
- 啓動快 5 ~ 10 倍。 (更快)
- qps 高 2~ 3 倍。 (更高)
- 運行時內存節省 1/3 ~ 1/2。 (更少)
- 打包可以縮小到 1/2 ~ 1/10;比如,300Mb 的變成了 23Mb。 (更小)
- 同時支持 jdk8, jdk11, jdk17, jdk21, graalvm native image
簡介:
- 剋制、簡潔、高效、開放、生態
- 支持 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 Image 打包
- 允許業務插件“熱插”、“熱拔”、“熱管理”
預覽:
@Controller
public class App {
public static void main(String[] args) {
Solon.start(App.class, args, app -> {
//手寫模式
app.get("/hello1", ctx -> ctx.output("Hello world!"));
});
}
//註解模式
@Get
@Socket
@Mapping("/hello2")
public String hello2(String name) {
return String.format("Hello %s!", name);
}
}
5、什麼樣的 Java 項目用 Solon 好
就像華爲講的,不要因爲愛國而特意買華爲手機。Solon 也是,有需要就用不需要就跳過(按正常的需求選擇):
- 信創需要國產化,應該用 Solon 或者 Solon Cloud(有案例)
- 軍工項目要國產化,應該用 Solon 或者 Solon Cloud(有案例)
- 嵌入式設備,內存有限,算力差,可以用 Solon 或者 Solon Native(有案例)
- 客戶的希望你內存更少,可以用 Solon (有案例)
- 別的框架用膩了,可以用 Solon (有案例)
- 有新系統開發想嘗新的框架,可以用 Solon (有案例)
- 老系統要輕量化改造,可以用 Solon(有案例)
作爲後來者,大家的疑或是會多一些。有問題,可以去交流羣裏多交流。
6、Solon 的代碼倉庫
喜歡 Solon 的,可以幫助宣傳。喜歡但覺得不夠好的,可以助其成長。不方便切換框架的,也可支持:
“衆人拾柴火焰高”,支持它、使用它、傳播它、一起貢獻代碼:)