基本信息
JessMA(原名:Portal-Basic)是由 JessMA 開源組織開發的一套高效 Java Full-Stack Web 套用開發框架,內置可擴展的 MVC Web 基礎架構和 DAO 資料庫訪問組件(內部已提供了 Hibernate、MyBatis 與 JDBC DAO 組件)
功能簡介
JessMA在設計之初就充分注重功能、性能與使用體驗。JessMA主要特點:
★ 功能全面:內置穩定高效的MVC基礎架構和DAO框架,支持Action攔截、Form Bean / Dao Bean / Spring Bean裝配和聲明式事務,提供國際化、檔案上傳下載、快取和頁面靜態化等常用Web組件,能滿足絕大部分Web套用的需要。
★ 高度擴展:JessMA通過的plug-in機制可以靈活擴展,JessMA發布包中自帶的jessma-ext-rest和jessma-ext-spring均以外掛程式的形式提供,用戶可根據需要載入或卸載這些外掛程式。應用程式開發者也可以根據實際需要編寫自定義外掛程式來擴展JessMA。
★ 強大的整合能力:JessMA是一個Full-Stack框架,同時也是一個開放式框架,可以以非常簡單的方式整合第三方組件。本開發手冊會詳細闡述如何在JessMA中整合FreeMarker、Velocity、UrlRewrite、EHCache-Web、Spring、Hibernate和MyBaits等常用框架和組件。
★ 高性能:性能要求是JessMA的硬性指標,從每個模組的設計到每行代碼的實現都力求簡潔高效。另外,JessMA並沒有對JSP/Servet API進行過多封裝,開發者仍然使用JSP/Servet API開發應用程式,沒有過多的迂迴,性能得到保證。
★ 優秀的使用體驗:JessMA的設計目標之一是提供良好的開發體驗,儘量減少應用程式開發者的工作,API的設計力求簡單、完整、明確。同時,JessMA為套用開發提供了大量Util工具,用來處理應用程式開發過程中通常會遇到的一般性問題,進一步減少應用程式開發者的工作負擔。
★ 平緩的學習曲線:平緩的學習曲線:學習使用JessMA只需掌握一定的Core Java與JSP/Servlet知識,本開發手冊會循序漸進闡述每個知識點,每個知識點都會結合完整的示例進行講述,知識點之間前後呼應,確保學習者在學習時溫故知新,融會貫通。
★ 完善的技術支持:除了提供完善的開發手冊和示例代碼以外,還提供部落格和QQ群用於解答使用JessMA過程中碰到的所有問題。
* JessMA 總體架構
JessMA主要包括以下5個部分:
• 基礎套用框架
基礎套用框架載入應用程式配置檔案(默認:app-config.xml),監聽應用程式的生命周期事件,並向上層套用傳送應用程式啟動和關閉通知,應用程式可以處理這些通知進行額外的初始化或清理工作。基礎套用框架在org.jessma.app包中是實現。
• MVC框架
MVC框架載入MVC配置檔案(默認:mvc-config.xml),通過前端控制器ActionDispatcher接收和解析所有的客戶HTTP請求,然後交由相應的Action進行處理,最後生成相應的視圖返回給客戶端。MVC框架在org.jessma.mvc包中實現。
• DAO框架
DAO框架封裝了所有的資料庫訪問操作,內置JDBC、Hibernate和MyBaits資料庫訪問組件以及Druid、Proxool、JNDI等連線池。DAO框架是可擴展的,用戶可以通過擴展org.jessma.dao.AbstractFacade和org.jessma.dao.AbstractSessionMgr實現自己的資料庫訪問組件。DAO框架在以下包中實現:
▪ org.jessma.dao
▪ org.jessma.dao.hbn
▪ org.jessma.dao.jdbc
▪ org.jessma.dao.mybatis
▪ org.jessma.ext.dao
• 公共組件
公共組件提供多種通用功能幫助類(如:字元串處理、類型轉換、分頁算法、壓縮/解壓、加解密、郵件傳送等),這些類與框架無關,可在任何應用程式中使用。公共組件在以下包中實現:
▪ org.jessma.util
▪ org.jessma.util.archive
▪ org.jessma.util.cache
▪ org.jessma.util.http
▪ org.jessma.util.mail
▪ org.jessma.dao(DAO框架也可由看作為一個相對較大的公共組件)
• 擴展外掛程式
擴展差外掛程式是基於JessMA核心框架基礎上的功能延伸,不是JessMA的必要組件。可由應用程式開發人員根據需要自行定製。JessMA發行包中也自帶了一些擴展外掛程式(如:jessma-ext-spring和jessma-ext-rest)。
* JessMA 應用程式依賴關係
基礎套用框架、MVC框架和DAO框架都依賴於公共組件,其中基礎套用框架同時依賴於DAO框架,因此,MVC框架和DAO框架能脫離JessMA單獨使用(當然,要附帶上公共組件)。例如:可以把MVC框架和DAO框架用於JessMA之外的其它Web項目;也可以把DAO框架用於非Web項目(如:Swing / SWT桌面套用)。