「開源資訊」輕量級開發框架 Hasor 4.1.0 發布,穩定性大幅提升

it實戰聯盟 發佈 2020-02-04T10:01:49+00:00

特性01.IoC/Aop編程模型,設計精巧,使用簡單02. COC原則的最佳實踐,『零』配置文件03. 微內核 + 擴展,基於內核已發展出 DB、Web、Restful 三大獨立的基礎框架04. 真正的零開發,解析項目特有的自定義 Xml 配置05. 支持模板化配置文件,程序打包

前言

Hasor 是一款基於 Java 語言的應用程式開發框架,它的核心設計目標是提供一個簡單、切必要的環境給開發者。開發者可以在此基礎上,通過 Hasor 強有力的粘合機制,構建出更加完善的應用場景。同時 Hasor 的各種內置插件也會幫助開發者進行快速開發。


特性

  • 01. IoC/Aop編程模型,設計精巧,使用簡單
  • 02. COC原則的最佳實踐,『零』配置文件
  • 03. 微內核 + 擴展,基於內核已發展出 DB、Web、Restful 三大獨立的基礎框架
  • 04. 真正的零開發,解析項目特有的自定義 Xml 配置
  • 05. 支持模板化配置文件,程序打包之後一套配置通吃(日常、預發、線上)以及其它各種環境
  • 06. 完備的 JDBC 操作接口,支持 Result -> Object 映射
  • 07. 提供三種途徑控制事務,支持七種事務傳播屬性,標準的事務隔離級別
  • 08. 支持多數據源、及多數據源下的事務控制(非JPA)
  • 09. 內置事件機制,方便進行業務深度解耦,使業務邏輯更佳清晰
  • 10. 支持 Web 類型項目開發,提供 restful 風格的 mvc 開發方式
  • 11. 支持Form表單驗證、支持場景化驗證
  • 12. 提供開放的模版渲染接口,支持各種類型的模版引擎
  • 13. 提供豐富的工具箱,幫助您快速開發,有了它您甚至不需要 apache-commons
  • 14. 支持log4j、logback等多種主流日誌框架
  • 15. 體積小,無第三方依賴

4.1.0 發布內容

1、穩定性提升,core\web\db\dataql\tconsole 這些組件的單測覆蓋率大幅提升

2、hasor-core 開始全面兼容 jsr332 向標準靠齊

3、另外這次新增了 tConsole 和 DataQL 兩個子框架。

4、最後新增了 all-in-one 包,只需要依賴一個 jar 包。就可以實現 hasor 全系引入。

Commons

  • 修復 ResourcesUtils 和 ScanClassPath,IO 文件句柄泄露問題。
  • BasicFuture 的 callback,當沒有實現CancellFutureCallback的時候時候,會觸發failed。
  • DataQL 中的 InterBeanMap 更名為 BeanMap 移到 commons 中。
  • DB 中的 LinkedCaseInsensitiveMap 移到 commons 中。

Core

  • 改造 hasor.core 全面支持 JSR-330。
  • 全新的 SPI 能力。
  • 單測覆蓋率達到 90%,修復若干潛在的問題。
  • 主 namespace 『http://project.hasor.net/hasor/schema/main』 統一改為 『http://www.hasor.net/sechma/main』
  • @InjectSettings 註解增加,命名空間支持。
  • 默認配置文件名 hasor-config.xml 改為 hconfig.xml、不在提供環境參數屬性文件的機制。
  • 其它大量接口上和內部執行機制的優化

Web

  • 單測覆蓋率達到 90%,修復若干潛在的問題。
  • hasor-env-properties 參數不在有效。
  • @Produces 註解行為變化為不在影響使用哪個渲染器,而是負責指明使用什麼類型作為 response 的 ContentType。
  • j2ee Servlet 會被轉換成 MappingTo 運行。j2ee Filter 會被轉換成 InvokerFilter 運行。
  • 新增 OneConfig 匯總了FilterConfig, ServletConfig, InvokerConfig 三個接口的實現。
  • ListenerPipeline 不在需要,取而代之使用 SPI 機制來替代。
  • RenderInvoker 接口不在提供 lockViewType 相關方法。
  • MimeType 接口在獲取 mimeType 信息時改為優先框架內的數據,如果框架內數據招不到在到 context 上查找。

DB

  • mybatis 插件回歸 hasor-db

tConsole

  • 重構,對於多行輸入支持用戶自定義命令結符號or字符串。重構後單測覆蓋率達到 90%。
  • 支持 server 模式通過 Socket 埠運行
  • 支持 基於標準輸入輸出流運行
  • hasor-boot 能力被完完全全整合,因此 Hasor 將不在提供 hasor-boot。

DataQL

  • 重構,放棄 javacc 更換成 antlr4。antlr4 更加智能。AST 模型仍然不變。重構後單測覆蓋率達到 90%。
  • DataQL 大量新語法新特性。具體參看語法參考手冊。一些老的語法形式也不在支持,因此 DataQL 的語法和以前有明顯變化。
  • 運行時內存模型:確定為 兩棧一堆
  • 指令集系統:不在需要 ASM、ASA、ASO 三個指令,取而代之的是更嚴謹的指令集。
  • SDK:函數包能力
  • DataModel數據模型:增加 unwrap 方法,用來解開 DataModel 包裹
  • 新增 Fragment 機制允許 DataQL 執行外部非 DataQL 語法的代碼片段。
  • BeanContainer 改為 Finder,刪掉 UdfSource、UdfManager、UdfResult 不在需要這些概念。
  • 原有 dql test case 語句文件統一轉移到 _old 目錄下面備用。

RSF

  • rsf 使用 tconsole 的新接口
  • 註冊中心暫不可用,下幾個版本會重新設計。
  • rsf 的 InterAddress 支持域名傳入,但是toString 的時仍然會轉換為 ip。

其它

  • 刪除 Hasor 默認提供的 JFinal 插件支持。理由是 JFinal 功能和 Hasor 體系重疊,同時 Hasor 的所有功能都是獨立。
  • 整合 Hasor 及其容易因此沒有提供集成代碼的必要。
  • 新增 Hasor-all 包。

發展狀況

Hasor起源於2012年,當時作為<新東方教育科技集團> 研發中心下各項目的基礎手腳架。

2015年7月3日,1.0.0版本發布。確立了「微內核+插件」發展策略。

2016年8月18日,2.4.3版本發布,同時開始孕育全新的子項目 RSF。由此 Hasor 開始向分布式領域發展。

2017年2月21日,RSF 被併入 Hasor 體系,同年 DataQL 問世。

2020年2月21日,4.0.7 最穩定的版本問世。這個版本中幾乎所有功的代碼都被重新 Review 並重新評估每個模塊的設計是否需要更新。

總結

這個框架也是最近剛剛發現的,搜集了一下相關信息分享給大家。查了一些資料,技術社區在16年之後基本不太活躍了,要使用的小夥伴要做好技術調研。Java 主流的框架還是基於Spring的SpringBoot/SpringCloud 體系。

關鍵字: