Solon 是什麼開源項目?
一個,Java 新的生态型應用開發架構。它從零開始建構,有自己的标準規範與開放生态(曆時五年,已有全球第二級别的生态規模)。與其他架構相比,它解決了兩個重要的痛點:啟動慢,費記憶體。
關鍵記事:
- 2021年1月,正式對外開源
- 2022年7月,建立官網,發力推廣
- 2023年2月,v2.0 釋出。官網增加 Solon Initializr,用于生成項目模闆。
- 2023年4月,成為信通院可信開源社群、可信開源項目。Maven 單月下載下傳量突破100萬。代碼送出數超 11000 次
- 2023年6月,Maven 單月下載下傳量突破200萬。官網資料超 500 個頁面。
解決痛點?
由于Solon Bean容器的獨特設計,不會因為擴充依賴變多而啟動很慢(開發調試時,省時、爽快)!以知名開源項目“小諾”為例:
- “snowy-spring 版” 啟動 15-50秒
- “snowy-solon 版” 啟動3-5秒,記憶體節省1/3(有興趣的,歡迎拉取代碼體驗)
所謂:“時間就是生命,效率就是金錢”,“天下武功,唯快不破”。
相對于 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 image
本次更新了什麼?
- 新增 solon-openapi2-knife4j 插件,替代 solon-swagger2-knife4j
- 增加 server.socket.ssl.* 配置
- 增加 server.websocket.ssl.* 配置
- 增加 Context::isSecure 接口
- 增加 ChainManager::defExecuteHandler 接口
- 增加 ChainManager 對 SessionStateFactory 的管理,原管理方式移除
- 增加 @Header String[] xxx 注入支援
- 增加 Converter 體系,一般用于基礎類型的通用轉換
- 增加 日志服務孵化機制,可在列印前進行完成格式配置
- 增加 solon.boot.socketd.netty 插件對 ssl 的支援
- 增加 solon.boot.websocket.netty 插件對 ssl 的支援
- 優化 RouterListener 取消自己的線程池,改用 RunUtil
- 優化 JsonConverter 标為棄用,統一由 Converter 替代
- 優化 SocketChannelBase 标為棄用,統一由 ChannelBase 替代
- 優化 ResourceUtil 的根路徑相容性
- 優化 @Init 注解邏輯,僅對原始執行個體有效。保持與 LifecycleBean 相同政策
- 優化 solon.boot.smarthttp 的 ws 适配
- 優化 nacos2-solon-cloud-plugin 的适配,統一 jackson 版本
- 優化 nacos-solon-cloud-plugin 的适配,統一 jackson 版本
- 優化 LogUtil 擴充方式,改為靜态擴充方式,原手動方式标為棄用
- 優化 Context::headerValues() 傳回類型為 String[]
- 優化 Context::paramValues() 統一 server 相關處理邏輯
- 優化 統一 request 參數與實體字段的注入轉換機制,并增加自定義轉換機制
- 優化 核心日志列印順序,由 SolonApp 執行個體化後再列印。以便日志格式配置先加載
- 優化 當使用 http ssl 時,服務啟動列印為 https 位址
- 優化 ActionExecuteHandlerDefault::changeBody 參數結構,友善不同的序列化方案處理
- 優化 Nami 編碼器比對政策及頭同步政策,尤其是僅單編碼包引入時
- 優化 AbstractRoutingDataSource 的關閉處理
- 優化 ShardingDataSource 增加 Closeable 接口支援
- 調整 beetlsql-solon-plugin 插件,DbConnectionSource 改為公有,調整包結構
- 修複 solon-swagger2-knife4j 插件,遞歸類型的資料模型會棧溢出的問題
- 修複 solon-swagger2-knife4j 插件,相同 path 不能顯示多個 method 的問題
- 修複 solon-swagger2-knife4j 插件,List<Demo> 風格參數,不能正常建構 json 示例
- 修複 solon-swagger2-knife4j 插件,Page<Demo>、Result<Page<Demo>> 等複雜嵌套的臨時模型,不能正常建構 json 示例
- dbvisitor 升為 5.3.3
- mybatis-flex 升為 1.5.1
- sqltoy 升為 5.2.59
- fastmybatis 升為 2.8.1
- bean-searcher 升為 4.2.2
- liteflow 升為 2.10.5
- beetl 升為 3.15.7.RELEASE
- beetlsql 升為 3.23.4-RELEASE
- smarthttp 升為 1.2.8
- fastjson2 升為 2.0.35
項目倉庫位址?
- gitee:https://gitee.com/noear/solon
- github:https://github.com/noear/solon