YMP是一個非常簡單、易用的一套輕量級JAVA套用開發框架,設計原則主要側重於簡化工作任務、規範開發流程、提高開發效率,讓開發工作像搭積木一樣輕鬆是我們一直不懈努力的目標!。
基本介紹
- 軟體名稱:YMP - 輕量級JAVA套用開發框架
- 軟體平台:多平台支持
- 最近更新時間:2016年02月18日
- 軟體語言:Java
- 軟體授權:Apache License
- 軟體版本:2.0
框架特性,模組及功能,
框架特性
YMP是一個非常簡單、易用的一套輕量級JAVA套用開發框架,設計原則主要側重於簡化工作任務、規範開發流程、提高開發效率,讓開發工作像搭積木一樣輕鬆是我們一直不懈努力的目標!
主要技術特點
- 採用組件化、模組化打包方式,可按需裝配,靈活可擴展;
- 統一配置體系結構,感受不一樣的檔案資源配置及管理模式;
- 整合多種日誌系統(log4j、jcl、slf4j)、日誌檔案可分離存儲;
- 輕量級持久化層封裝,針對RDBMS(MySQL、SQLServer、Oracle等)和NoSQL(MongoDB、Redis等)提供支持;
- 完善的外掛程式機制,助力於更細顆粒度的業務拆分;
- 獨特的獨立服務開發體驗;
- 功能強大的驗證框架,完全基於Java註解,易於使用和擴展;
- 靈活的快取服務,支持EhCache、Redis和多級快取(MultiLevel)技術;
- 配置簡單的MVC架構,強大且易於維護和擴展,支持RESTful風格,支持JSP、HTML、Binary、Freemarker、Velocity等多種視圖技術;
模組及功能
YMP框架主要是由框架核心(Core)和若干模組(Modules)組成,整體結構非常簡約、清晰。
![YMP YMP](/img/7/0a4/gNihzYjJzN1MDZyYWOkVjN2gDM4UWZhVGOwIDMidTYwUTOkFjNwYmNvMWaw9SbvNmLz9mYlNmYu4GZj5yZtl2ai9yL6MHc0RHa.jpg)
YMP - 輕量級JAVA套用開發框架
框架核心(Core)
主要負責框架的初始化和模組的載入及其生命周期管理,功能包括:
- 類對象管理器:提供包類的自動掃描以及Bean生命周期管理、依賴注入和方法攔截等特性;
- 事件服務:通過事件註冊和廣播的方式觸發和監聽事件動作,並支持同步和異步兩種模式執行事件佇列;
- 模組:是YMP框架所有功能特性封裝的基礎形式,負責模組的生命周期管理;
- 國際化資源管理器:提供統一的資源檔案載入、銷毀和內容讀取,支持自定義資源載入和語言變化的事件監聽;
- 另外,提供了一組自定義的數據結構和框架中需要的各種工具類;
配置體系(Configuration)
通過簡單的目錄結構實現在項目開發以及維護過程中,對配置等各種檔案資源的統一管理,為模組化開發和部署提供靈活的、簡單有效的解決方案:
- 規範模組化開發流程、統一資源檔案管理;
- 具備有效的資源重用和靈活的系統集成構建、部署和數據備份與遷移等優勢;
- 簡單的配置檔案檢索、載入及管理模式;
- 模組間資源共享,模組可以共用所屬項目的配置、類和jar包等資源檔案;
- 默認支持XML和Properties配置檔案解析,可以通過IConfigurationProvider接口自定義檔案格式,支持快取,避免重複載入;
- 配置對象支持註解方式聲明,無需編碼即可自動載入並填充配置內容到類對象;
- 集成模組的構建與分發、服務的啟動與停止*,以及清晰的資源檔案分類結構可快速定位;
日誌(Log)
基於開源日誌框架Log4J 2實現,提供對日誌記錄器對象的統一管理,可以在任意位置調用任意日誌記錄器輸出日誌,實現系統與業務日誌的分離,並針對apache-commons-logging日誌框架和slf4j日誌系統提供支持;
持久化(Persistence)
JDBC
針對關係型資料庫(RDBMS)數據存取的一套簡單解決方案,主要關注數據存取的效率、易用性和透明,其具備以下功能特徵:
- 基於JDBC框架API進行輕量封裝,結構簡單、便於開發、調試和維護;
- 最佳化批量數據更新、標準化結果集、預編譯SQL語句處理;
- 支持單實體ORM操作,無需編寫SQL語句;
- 提供腳手架工具,快速生成數據實體類,支持鏈式調用;
- 支持結果集與值對象的自動裝配,支持自定義裝配規則;
- 支持多數據源,默認支持C3P0、DBCP、JNDI連線池配置,支持數據源擴展;
- 支持多種資料庫(如:Oracle、MySQL、SQLServer等);
- 支持面向對象的資料庫查詢封裝,有助於減少或降低程式編譯期錯誤;
- 支持資料庫事務嵌套;
- 支持資料庫存儲過程*;
MongoDB
針對MongoDB的數據存取操作的特點,以JDBC模組的設計思想進行簡單封裝,採用會話機制,支持多數據源配置和實體操作、基於對象查詢、MapReduce、GridFS、聚合及函式表達式集成等,仍需進一步完善改進,文檔整理中,敬請期待...
Redis
基於Jedis驅動封裝,採用會話機制,支持多數據源及連線池配置,仍需進一步完善改進,文檔整理中,敬請期待...
外掛程式(Plugin)
採用獨立的ClassLoader類載入器來管理私有JAR包、類、資源檔案等,設計目標是在接口開發模式下,將需求進行更細顆粒度拆分,從而達到一個理想化可重用代碼的封裝形態;
每個外掛程式都是封閉的世界,外掛程式與外界之間溝通的唯一方法是通過業務接口調用,管理這些外掛程式的容器被稱之為外掛程式工廠,負責外掛程式的分析、載入和初始化,以及外掛程式的生命周期管理,外掛程式模組支持創建多個外掛程式工廠實例,工廠對象之間完全獨立,無任何依賴關係;
服務(Serv)
一套基於NIO實現的通訊服務框架,提供TCP、UDP協定的客戶端與服務端封裝,靈活的訊息監聽與訊息內容編/解碼,簡約的配置使二次開發更加便捷;
同時默認提供斷線重連、鏈路維護(心跳)等服務支持,您只需了解業務即可輕鬆完成開發工作。
驗證(Validation)
服務端參數有效性驗證工具,採用註解聲明方式配置驗證規則,更簡單、更直觀、更友好,支持方法參數和類成員屬性驗證,支持驗證結果國際化I18N資源綁定,支持自定義驗證器,支持多種驗證模式;
快取(Cache)
以EhCache作為默認JVM進程內快取服務,通過整合外部Redis服務實現多級快取(MultiLevel)的輕量級快取框架,並與YMP框架深度集成(支持針對類方法的快取,可以根據方法參數值進行快取),靈活的配置、易於使用和擴展;
WebMVC框架
WebMVC模組在YMP框架中是除了JDBC模組以外的另一個非常重要的模組,集成了YMP框架的諸多特性,在功能結構的設計和使用方法上依然保持一貫的簡單風格,同時也繼承了主流MVC框架的基因,對於了解和熟悉SSH等框架技術的開發人員來說,上手極其容易,毫無學習成本。
其主要功能特性如下:
- 標準MVC實現,結構清晰,完全基於註解方式配置簡單;
- 支持約定模式,無需編寫控制器代碼,直接匹配並執行視圖;
- 支持多種視圖技術(JSP、Freemarker、Velocity、Text、HTML、JSON、Binary、Forward、Redirect、HttpStatus等);
- 支持RESTful模式及URL風格;
- 支持請求參數與控制器方法參數的自動綁定;
- 支持參數有效性驗證;
- 支持控制器方法的攔截;
- 支持註解配置控制器請求路由映射;
- 支持自動掃描控制器類並註冊;
- 支持事件和異常的自定義處理;
- 支持I18N資源國際化;
- 支持控制器方法和視圖快取;
- 支持控制器參數轉義;
- 支持外掛程式擴展;