Solon 是什麼框架?
一個,Java 新的生態型應用開發框架。它從零開始構建,有自己的標準規範與開放生態。與其他框架相比,它解決了一個重要的痛點:啟動慢,費資源。
解決痛點?
由於Solon Bean容器的獨特設計,Solon 不會因為擴充套件依賴變多而啟動很慢(開發除錯時,爽快)!!!以開源專案“小諾”為例:
- “snowy-spring 版” 啟動 30-50秒
- “snowy-solon 版” 啟動3-5秒(有興趣的,可以拉取程式碼體驗)
以前有幾個句這麼說的:“時間就是金錢,效率就是生命”,“天下武功,唯快不破”。
相對於 Spring Boot 和 Spring Cloud 的專案:
- 啟動快 5 ~ 10 倍。 (更快)
- qps 高 2~ 3 倍。 (更高)
- 執行時記憶體節省 1/3 ~ 1/2。 (更少)
- 打包可以縮小到 1/2 ~ 1/10;比如,300Mb 的變成了 23Mb。 (更小)
- 同時支援 jdk8, jdk11, jdk17, jdk20, graalvm native
- (不會) 因為依賴變多而啟動很慢(以小諾專案為例 “snowy-spring 版” 啟動 30-50秒,“snowy-solon 版” 啟動3-5秒)
似曾相識的體驗,入門更簡單,遷移很方便:
@Controller
public class App {
public static void main(String[] args) {
Solon.start(App.class, args, app->{
//手寫模式
app.get("/", ctx -> ctx.outputAsJson("{message:'Hello world!'}"))
});
}
//註解模式
@Get
@Socket
@Mapping("/hello")
public String hello(String name) {
return String.format("Hello %s!", name);
}
}
入門探索影片(使用者錄製):
本次更新:
- 完成 Solon Native 開發
- 完成 Solon Aot 開發
- 增加 @Inject 注入 bean 的 required 檢測支援
- 增加 快取服務適配類可傳入客戶端的構建函式
- 增加 DynamicDataSource 無參建構函式,方便定製
- 增加 CloudDiscoveryService 代理類,以支援發現代理的配置
- 增加 ctx:pathAsLower() 介面
- 增加 solon.boot.undertow 原生編譯配置申明
- 增加 solon.sessionstate.jwt 原生編譯配置申明
- 增加 solon.logging.logback 原生編譯配置申明
- 增加 solon.logging.log4j2 原生編譯配置申明
- 增加 solon cloud 發現代理的配置支援(在 k8s 環境,可直接轉發到 k8s sev 上)
- 調整 aot 註冊時對空類名進行過濾
- 增加 aot 配置注入實體的自動登記處理
- 增加 aot 函式包裝的返回可序列化型別的自動登記處理
- 增加 aot 有注入jdk代理的自動登記處理
- 增加 aot jdbc 驅動的的自動登記處理
- 增加 aot 通用反射代理的自動登記處理
- 調整 aot 完成後的關閉處理方式
- 增強 solon.boot.jetty 在原生執行時相容性
- 增強 solon.boot.undertow 在原生執行時相容性
- 調整 Context::commit 函式位置,遷移到別處
- 調整 預熱工具在 aot 時跳過執行
- 調整 MethodWrap 和 BeanWrap 的兩個異常解包處理
- 解決 solon.aot 部分型別不能解析識別的問題
- smart-socket 升級為 1.5.27
- smart-http 升級為 1.2.0
- fastjson2 升為 2.0.31
- mybatis flex 升為 1.2.1
- polaris 升為 1.12.2
- beetl 升為 3.15.4.RELEASE
- beetlsql 升為 3.22.0-RELEASE
- sqltoy 升為 5.2.45
- liteflow 升為 2.10.2
- forest 升為 1.5.31
- dbvisitor 升為 5.3.1