概述

2018-12-24 21:35 更新

LOGO

YMP是一個(gè)非常簡(jiǎn)單、易用的一套輕量級(jí)JAVA應(yīng)用開發(fā)框架,設(shè)計(jì)原則主要側(cè)重于簡(jiǎn)化工作任務(wù)、規(guī)范開發(fā)流程、提高開發(fā)效率,讓開發(fā)工作像搭積木一樣輕松是我們一直不懈努力的目標(biāo)!

主要技術(shù)特點(diǎn)

  • 采用組件化、模塊化打包方式,可按需裝配,靈活可擴(kuò)展;

  • 采用微內(nèi)核實(shí)現(xiàn)Autoscan、AOP、IoC、Event等,涵蓋SSH框架中絕大部分核心功能;

  • 統(tǒng)一配置體系結(jié)構(gòu),感受不一樣的文件資源配置及管理模式;

  • 整合多種日志系統(tǒng)(log4j、jcl、slf4j)、日志文件可分離存儲(chǔ);

  • 輕量級(jí)持久化層封裝,針對(duì)RDBMS(MySQL、SQLServer、Oracle等)和NoSQL(MongoDB、Redis等)提供支持;

  • 完善的插件機(jī)制,助力于更細(xì)顆粒度的業(yè)務(wù)拆分;

  • 獨(dú)特的獨(dú)立服務(wù)開發(fā)體驗(yàn);

  • 功能強(qiáng)大的驗(yàn)證框架,完全基于Java注解,易于使用和擴(kuò)展;

  • 靈活的緩存服務(wù),支持EhCache、Redis和多級(jí)緩存(MultiLevel)技術(shù);

  • 配置簡(jiǎn)單的MVC架構(gòu),強(qiáng)大且易于維護(hù)和擴(kuò)展,支持RESTful風(fēng)格,支持JSP、HTML、Binary、Freemarker、Velocity等多種視圖技術(shù);

模塊及功能

YMP框架主要是由框架核心(Core)和若干模塊(Modules)組成,整體結(jié)構(gòu)非常簡(jiǎn)約、清晰,如圖所示:

Structure

框架核心(Core)

主要負(fù)責(zé)框架的初始化和模塊的加載及其生命周期管理,功能包括:

  • 類對(duì)象管理器:提供包類的自動(dòng)掃描以及Bean生命周期管理、依賴注入和方法攔截等特性;
  • 事件服務(wù):通過事件注冊(cè)和廣播的方式觸發(fā)和監(jiān)聽事件動(dòng)作,并支持同步和異步兩種模式執(zhí)行事件隊(duì)列;
  • 模塊:是YMP框架所有功能特性封裝的基礎(chǔ)形式,負(fù)責(zé)模塊的生命周期管理;
  • 國(guó)際化資源管理器:提供統(tǒng)一的資源文件加載、銷毀和內(nèi)容讀取,支持自定義資源加載和語言變化的事件監(jiān)聽;
  • 另外,提供了一組自定義的數(shù)據(jù)結(jié)構(gòu)和框架中需要的各種工具類;
配置體系(Configuration)

通過簡(jiǎn)單的目錄結(jié)構(gòu)實(shí)現(xiàn)在項(xiàng)目開發(fā)以及維護(hù)過程中,對(duì)配置等各種文件資源的統(tǒng)一管理,為模塊化開發(fā)和部署提供靈活的、簡(jiǎn)單有效的解決方案:

  • 規(guī)范模塊化開發(fā)流程、統(tǒng)一資源文件管理;
  • 具備有效的資源重用和靈活的系統(tǒng)集成構(gòu)建、部署和數(shù)據(jù)備份與遷移等優(yōu)勢(shì);
  • 簡(jiǎn)單的配置文件檢索、加載及管理模式;
  • 模塊間資源共享,模塊可以共用所屬項(xiàng)目的配置、類和jar包等資源文件;
  • 默認(rèn)支持XML和Properties配置文件解析,可以通過IConfigurationProvider接口自定義文件格式,支持緩存,避免重復(fù)加載;
  • 配置對(duì)象支持注解方式聲明,無需編碼即可自動(dòng)加載并填充配置內(nèi)容到類對(duì)象;
  • 集成模塊的構(gòu)建與分發(fā)、服務(wù)的啟動(dòng)與停止*,以及清晰的資源文件分類結(jié)構(gòu)可快速定位;
日志(Log)

基于開源日志框架Log4J 2實(shí)現(xiàn),提供對(duì)日志記錄器對(duì)象的統(tǒng)一管理,可以在任意位置調(diào)用任意日志記錄器輸出日志,實(shí)現(xiàn)系統(tǒng)與業(yè)務(wù)日志的分離,并針對(duì)apache-commons-logging日志框架和slf4j日志系統(tǒng)提供支持;

持久化(Persistence)
JDBC

針對(duì)關(guān)系型數(shù)據(jù)庫(kù)(RDBMS)數(shù)據(jù)存取的一套簡(jiǎn)單解決方案,主要關(guān)注數(shù)據(jù)存取的效率、易用性和透明,其具備以下功能特征:

  • 基于JDBC框架API進(jìn)行輕量封裝,結(jié)構(gòu)簡(jiǎn)單、便于開發(fā)、調(diào)試和維護(hù);
  • 優(yōu)化批量數(shù)據(jù)更新、標(biāo)準(zhǔn)化結(jié)果集、預(yù)編譯SQL語句處理;
  • 支持單實(shí)體ORM操作,無需編寫SQL語句;
  • 提供腳手架工具,快速生成數(shù)據(jù)實(shí)體類,支持鏈?zhǔn)秸{(diào)用;
  • 支持通過存儲(chǔ)器注解自定義SQL語句或從配置文件中加載SQL并自動(dòng)執(zhí)行;
  • 支持結(jié)果集與值對(duì)象的自動(dòng)裝配,支持自定義裝配規(guī)則;
  • 支持多數(shù)據(jù)源,默認(rèn)支持C3P0、DBCP、JNDI連接池配置,支持?jǐn)?shù)據(jù)源擴(kuò)展;
  • 支持多種數(shù)據(jù)庫(kù)(如:Oracle、MySQL、SQLServer等);
  • 支持面向?qū)ο蟮臄?shù)據(jù)庫(kù)查詢封裝,有助于減少或降低程序編譯期錯(cuò)誤;
  • 支持?jǐn)?shù)據(jù)庫(kù)事務(wù)嵌套;
  • 支持?jǐn)?shù)據(jù)庫(kù)存儲(chǔ)過程*;
MongoDB

針對(duì)MongoDB的數(shù)據(jù)存取操作的特點(diǎn),以JDBC模塊的設(shè)計(jì)思想進(jìn)行簡(jiǎn)單封裝,采用會(huì)話機(jī)制,支持多數(shù)據(jù)源配置和實(shí)體操作、基于對(duì)象查詢、MapReduce、GridFS、聚合及函數(shù)表達(dá)式集成等,仍需進(jìn)一步完善改進(jìn),文檔整理中,敬請(qǐng)期待...

Redis

基于Jedis驅(qū)動(dòng)封裝,采用會(huì)話機(jī)制,支持多數(shù)據(jù)源及連接池配置,仍需進(jìn)一步完善改進(jìn),文檔整理中,敬請(qǐng)期待...

插件(Plugin)

采用獨(dú)立的ClassLoader類加載器來管理私有JAR包、類、資源文件等,設(shè)計(jì)目標(biāo)是在接口開發(fā)模式下,將需求進(jìn)行更細(xì)顆粒度拆分,從而達(dá)到一個(gè)理想化可重用代碼的封裝形態(tài);

每個(gè)插件都是封閉的世界,插件與外界之間溝通的唯一方法是通過業(yè)務(wù)接口調(diào)用,管理這些插件的容器被稱之為插件工廠,負(fù)責(zé)插件的分析、加載和初始化,以及插件的生命周期管理,插件模塊支持創(chuàng)建多個(gè)插件工廠實(shí)例,工廠對(duì)象之間完全獨(dú)立,無任何依賴關(guān)系;

服務(wù)(Serv)

一套基于NIO實(shí)現(xiàn)的通訊服務(wù)框架,提供TCP、UDP協(xié)議的客戶端與服務(wù)端封裝,靈活的消息監(jiān)聽與消息內(nèi)容編/解碼,簡(jiǎn)約的配置使二次開發(fā)更加便捷;

同時(shí)默認(rèn)提供斷線重連、鏈路維護(hù)(心跳)等服務(wù)支持,您只需了解業(yè)務(wù)即可輕松完成開發(fā)工作。

驗(yàn)證(Validation)

服務(wù)端參數(shù)有效性驗(yàn)證工具,采用注解聲明方式配置驗(yàn)證規(guī)則,更簡(jiǎn)單、更直觀、更友好,支持方法參數(shù)和類成員屬性驗(yàn)證,支持驗(yàn)證結(jié)果國(guó)際化I18N資源綁定,支持自定義驗(yàn)證器,支持多種驗(yàn)證模式;

緩存(Cache)

以EhCache作為默認(rèn)JVM進(jìn)程內(nèi)緩存服務(wù),通過整合外部Redis服務(wù)實(shí)現(xiàn)多級(jí)緩存(MultiLevel)的輕量級(jí)緩存框架,并與YMP框架深度集成(支持針對(duì)類方法的緩存,可以根據(jù)方法參數(shù)值進(jìn)行緩存),靈活的配置、易于使用和擴(kuò)展;

WebMVC框架

WebMVC模塊在YMP框架中是除了JDBC模塊以外的另一個(gè)非常重要的模塊,集成了YMP框架的諸多特性,在功能結(jié)構(gòu)的設(shè)計(jì)和使用方法上依然保持一貫的簡(jiǎn)單風(fēng)格,同時(shí)也繼承了主流MVC框架的基因,對(duì)于了解和熟悉SSH等框架技術(shù)的開發(fā)人員來說,上手極其容易,毫無學(xué)習(xí)成本。

其主要功能特性如下:

  • 標(biāo)準(zhǔn)MVC實(shí)現(xiàn),結(jié)構(gòu)清晰,完全基于注解方式配置簡(jiǎn)單;
  • 支持約定模式,無需編寫控制器代碼,直接匹配并執(zhí)行視圖;
  • 支持多種視圖技術(shù)(JSP、Freemarker、Velocity、Text、HTML、JSON、Binary、Forward、Redirect、HttpStatus等);
  • 支持RESTful模式及URL風(fēng)格;
  • 支持請(qǐng)求參數(shù)與控制器方法參數(shù)的自動(dòng)綁定;
  • 支持參數(shù)有效性驗(yàn)證;
  • 支持控制器方法的攔截;
  • 支持注解配置控制器請(qǐng)求路由映射;
  • 支持自動(dòng)掃描控制器類并注冊(cè);
  • 支持事件和異常的自定義處理;
  • 支持I18N資源國(guó)際化;
  • 支持控制器方法和視圖緩存;
  • 支持控制器參數(shù)轉(zhuǎn)義;
  • 支持插件擴(kuò)展;

One More Thing

YMP不僅提供便捷的Web及其它Java項(xiàng)目的快速開發(fā)體驗(yàn),也將不斷提供更多豐富的項(xiàng)目實(shí)踐經(jīng)驗(yàn)。

感興趣的小伙伴兒們可以加入 官方QQ群480374360,一起交流學(xué)習(xí),幫助YMP成長(zhǎng)!

了解更多有關(guān)YMP框架的內(nèi)容,請(qǐng)?jiān)L問官網(wǎng):http://www.ymate.net/

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)