高效 Java Web 开发框架 JessMA v3.2.1 正式发布
JessMA(原名:Portal-Basic)是由 JessMA Open Source 開(kāi)發(fā)的一套高效 Java Full-Stack Web 應(yīng)用開(kāi)發(fā)框架,內(nèi)置可擴(kuò)展的 MVC Web 基礎(chǔ)架構(gòu)和 DAO 數(shù)據(jù)庫(kù)訪問(wèn)組件(內(nèi)部已提供了 Hibernate、MyBatis 與 JDBC DAO 組件),集成了 Action 攔截、Form / Dao / Spring Bean 裝配、國(guó)際化、文件上傳下載和頁(yè)面靜態(tài)化等基礎(chǔ) Web 應(yīng)用組件,提供高效靈活的純 Jsp/Servlet API 編程模型,可完美整合 Spring,支持 Action Convention,能快速開(kāi)發(fā)傳統(tǒng)風(fēng)格和 RESTful 風(fēng)格應(yīng)用程序,文檔和示例完善,非常容易學(xué)習(xí)。
JessMA 官方網(wǎng)站:http://www.jessma.org
JessMA 下載地址:https://code.google.com/p/portal-basic/
JessMA在設(shè)計(jì)之初就充分注重功能、性能與使用體驗(yàn)。JessMA主要特點(diǎn):
★ 功能全面:內(nèi)置穩(wěn)定高效的MVC基礎(chǔ)架構(gòu)和DAO框架,支持Action攔截、Form Bean / Dao Bean / Spring Bean裝配和聲明式事務(wù),提供國(guó)際化、文件上傳下載、緩存和頁(yè)面靜態(tài)化等常用Web組件,能滿足絕大部分Web應(yīng)用的需要。
★ 高度擴(kuò)展:JessMA通過(guò)的plug-in機(jī)制可以靈活擴(kuò)展,JessMA發(fā)布包中自帶的jessma-ext-rest和jessma-ext-spring均以插件的形式提供,用戶可根據(jù)需要加載或卸載這些插件。應(yīng)用程序開(kāi)發(fā)者也可以根據(jù)實(shí)際需要編寫(xiě)自定義插件來(lái)擴(kuò)展JessMA。
★ 強(qiáng)大的整合能力:JessMA是一個(gè)Full-Stack框架,同時(shí)也是一個(gè)開(kāi)放式框架,可以以非常簡(jiǎn)單的方式整合第三方組件。本開(kāi)發(fā)手冊(cè)會(huì)詳細(xì)闡述如何在JessMA中整合FreeMarker、Velocity、UrlRewrite、EHCache-Web、Spring、Hibernate和MyBaits等常用框架和組件。
★ 高性能:性能要求是JessMA的硬性指標(biāo),從每個(gè)模塊的設(shè)計(jì)到每行代碼的實(shí)現(xiàn)都力求簡(jiǎn)潔高效。另外,JessMA并沒(méi)有對(duì)JSP/Servet API進(jìn)行過(guò)多封裝,開(kāi)發(fā)者仍然使用JSP/Servet API開(kāi)發(fā)應(yīng)用程序,沒(méi)有過(guò)多的迂回,性能得到保證。
★ 優(yōu)秀的使用體驗(yàn):JessMA的設(shè)計(jì)目標(biāo)之一是提供良好的開(kāi)發(fā)體驗(yàn),盡量減少應(yīng)用程序開(kāi)發(fā)者的工作,API的設(shè)計(jì)力求簡(jiǎn)單、完整、明確。同時(shí),JessMA為應(yīng)用開(kāi)發(fā)提供了大量Util工具,用來(lái)處理應(yīng)用程序開(kāi)發(fā)過(guò)程中通常會(huì)遇到的一般性問(wèn)題,進(jìn)一步減少應(yīng)用程序開(kāi)發(fā)者的工作負(fù)擔(dān)。
★ 平緩的學(xué)習(xí)曲線:平緩的學(xué)習(xí)曲線:學(xué)習(xí)使用JessMA只需掌握一定的Core Java與JSP/Servlet知識(shí),本開(kāi)發(fā)手冊(cè)會(huì)循序漸進(jìn)闡述每個(gè)知識(shí)點(diǎn),每個(gè)知識(shí)點(diǎn)都會(huì)結(jié)合完整的示例進(jìn)行講述,知識(shí)點(diǎn)之間前后呼應(yīng),確保學(xué)習(xí)者在學(xué)習(xí)時(shí)溫故知新,融會(huì)貫通。
★ 完善的技術(shù)支持:除了提供完善的開(kāi)發(fā)手冊(cè)和示例代碼以外,還提供博客和Q~Q~群用于解答使用JessMA過(guò)程中碰到的所有問(wèn)題,也可以訪問(wèn) JessMA 官方網(wǎng)站了解更多資訊。
* JessMA 總體架構(gòu)
? JessMA主要包括以下5個(gè)部分:
● 基礎(chǔ)應(yīng)用框架
基礎(chǔ)應(yīng)用框架加載應(yīng)用程序配置文件(默認(rèn):app-config.xml),監(jiān)聽(tīng)?wèi)?yīng)用程序的生命周期事件,并向上層應(yīng)用發(fā)送應(yīng)用程序啟動(dòng)和關(guān)閉通知,應(yīng)用程序可以處理這些通知進(jìn)行額外的初始化或清理工作。基礎(chǔ)應(yīng)用框架在org.jessma.app包中是實(shí)現(xiàn)。
● MVC框架
MVC框架加載MVC配置文件(默認(rèn):mvc-config.xml),通過(guò)前端控制器ActionDispatcher接收和解析所有的客戶HTTP請(qǐng)求,然后交由相應(yīng)的Action進(jìn)行處理,最后生成相應(yīng)的視圖返回給客戶端。MVC框架在org.jessma.mvc包中實(shí)現(xiàn)。
● DAO框架
DAO框架封裝了所有的數(shù)據(jù)庫(kù)訪問(wèn)操作,內(nèi)置JDBC、Hibernate和MyBaits數(shù)據(jù)庫(kù)訪問(wèn)組件以及Druid、Proxool、JNDI等連接池。DAO框架是可擴(kuò)展的,用戶可以通過(guò)擴(kuò)展org.jessma.dao.AbstractFacade和org.jessma.dao.AbstractSessionMgr實(shí)現(xiàn)自己的數(shù)據(jù)庫(kù)訪問(wèn)組件。DAO框架在以下包中實(shí)現(xiàn):
? org.jessma.dao
? org.jessma.dao.hbn
? org.jessma.dao.jdbc
? org.jessma.dao.mybatis
? org.jessma.ext.dao
● 公共組件
公共組件提供多種通用功能幫助類(如:字符串處理、類型轉(zhuǎn)換、分頁(yè)算法、壓縮/解壓、加解密、郵件發(fā)送等),這些類與框架無(wú)關(guān),可在任何應(yīng)用程序中使用。公共組件在以下包中實(shí)現(xiàn):
? org.jessma.util
? org.jessma.util.archive
? org.jessma.util.cache
? org.jessma.util.http
? org.jessma.util.mail
? org.jessma.dao(DAO框架也可由看作為一個(gè)相對(duì)較大的公共組件)
● 擴(kuò)展插件
擴(kuò)展差插件是基于JessMA核心框架基礎(chǔ)上的功能延伸,不是JessMA的必要組件。可由應(yīng)用程序開(kāi)發(fā)人員根據(jù)需要自行定制。JessMA發(fā)行包中也自帶了一些擴(kuò)展插件(如:jessma-ext-spring和jessma-ext-rest)。
* JessMA 應(yīng)用程序依賴關(guān)系
基礎(chǔ)應(yīng)用框架、MVC框架和DAO框架都依賴于公共組件,其中基礎(chǔ)應(yīng)用框架同時(shí)依賴于DAO框架,因此,MVC框架和DAO框架能脫離JessMA單獨(dú)使用(當(dāng)然,要附帶上公共組件)。例如:可以把MVC框架和DAO框架用于JessMA之外的其它Web項(xiàng)目;也可以把DAO框架用于非Web項(xiàng)目(如:Swing / SWT桌面應(yīng)用)。
JessMA 3.2.1 更新:
1、Portal-Basic 框架正式更名為 JessMA
?1) JessMA 的版本號(hào)沿用 Portal-Basic 的版本號(hào)
?2) 包名稱 com.bruce.* 統(tǒng)一改為 org.jessma.*
2、mvc-confing.xml 中增加 <base-path> 配置項(xiàng),支持自定義 ${__base} 變量
?1) base-path.type 有三種類型:'auto','manual','none',其中 'auto' 為默認(rèn)類型
?2) 'auto':根據(jù)當(dāng)前請(qǐng)求的路徑信息自動(dòng)設(shè)置 ${__base}(${__base} 保存在 Request Attribute 中)
${__base} = {scheme}://{server_name}:{server_port}/{app_context}
?3) 'manual':在 MVC 配置文件中手工設(shè)置 ${__base}(${__base} 保存在 Application Attribute 中)
?4) 'none':不設(shè)置 ${__base}
3、mvc-confing.xml 中增加 <result-path-aliases> 配置項(xiàng),支持用別名置換 Action Result 的路徑
?例如:
?<result-path-aliases>
? ?<alias name="index" path="/jsp/index.jsp"/>
? ?<alias name="jsp_base" path="/jsp/test"/>
?</result-path-aliases>
?以下的幾個(gè)配置是等效的:
?1) 不使用別名
? ?<result>/jsp/index.jsp</result> ? ? ? ? 或注解 @Result(path="/jsp/index.jsp")
? ?<result>/jsp/test/my.jsp</result> ? ? ?或注解 @Result(path="/jsp/test/my.jsp")
?2) 使用別名
? ?<result>${index}</result> ? ? ? ? ? ? ? ?或注解 @Result(path="${index}")
? ?<result>${jsp_base}/my.jsp</result> 或注解 @Result(path="${jsp_base}/my.jsp")
4、支持在不重啟服務(wù)器的情況下,動(dòng)態(tài)更新應(yīng)用程序配置
?1) 更新 MVC 配置。org.jessma.mvc.ActionDispatcher 增加方法:
? ? ?A) reload(delay) 更新 MVC 配置
? ? ?B) pause() 暫停 MVC 組件
? ? ?C) resume() 恢復(fù) MVC 組件
? ? ?D) 以上三個(gè)方法配合使用:pause() -> reload(delay) -> resume()
?2) 更新 REST 配置。org.jessma.ext.rest.RestDispatcher 增加方法:
? ? ?A) reload(delay) 更新 REST 配置
? ? ?B) pause() 暫停 REST 組件
? ? ?C) resume() 恢復(fù) REST 組件
? ? ?D) 以上三個(gè)方法配合使用:pause() -> reload(delay) -> resume()
?3) 更新應(yīng)用程序配置文件(app-config.xml)的 <user> 節(jié)點(diǎn)。org.jessma.app.AppConfig 增加方法:
? ? ?A) reloadUserConfig(delay) 調(diào)用由 <system>/<user-config-parser> 節(jié)點(diǎn)定義的 UserConfigParser 的 parse(user) 方法重新加載 <user> 節(jié)點(diǎn)的配置信息
? ? ?B) 執(zhí)行更新前通常需要暫停 MVC 組件 或 REST 組件(調(diào)用它們的 pause() 方法)
5、修改 org.jessma.util.Logger,使 Logger 類更通用
?1) 默認(rèn)日志記錄器:應(yīng)用程序默認(rèn)日志記錄器的名稱為 'JessMA',可以調(diào)用 Logger.getDefaultLogger() 獲取默認(rèn)日志記錄器
?2) 其他日志記錄器:應(yīng)用程序可以在任何地方調(diào)用 new Logger("<logger_name>") 獲取在 log4j.properties 中配置的其他日志記錄器
6、增加一個(gè) JDBC SessionMgr
?1) org.jessma.dao.jdbc.JdbcSessionMgr :沒(méi)有使用連接池的 JDBC SessionMgr
7、其它更新
?1) 原測(cè)試工程 MyPortal 改為 MyJessMA
?2) 原依賴庫(kù) portal-basic-lib 改為 jessma-lib
?3) 依賴庫(kù) “jessma-lib” 和 “spring-lib” 中的所有 jar 包更新到最新版本
?4) 更好地支持在 GAE、BAE 和 OpenShift 等云平臺(tái)中部署 JessMA 應(yīng)用程序
?5) 更新開(kāi)發(fā)手冊(cè)《JessMA 高效 Java MVC & REST 開(kāi)發(fā)框架 (v3.2)》
?6) 官方網(wǎng)站 www.jessma.org 將陸續(xù)提供各項(xiàng)技術(shù)支持
8、應(yīng)用程序升級(jí)說(shuō)明
?JessMA 3.2.1 在功能方面完全兼容 Portal-Basic 3.1.1,原有應(yīng)用程序升級(jí)到 JessMA 3.2.1 需做以下工作:
?1) 應(yīng)用程序中所有用到 com.bruce.* 的地方都改為 org.jessma.*
?2) 修改 XML 配置文件的 XSD Schema 引用(參考 MyJessMA 測(cè)試工程)
?3) 如果應(yīng)用程序用到 org.jessma.util.Logger,則獲取日志記錄器對(duì)象的代碼要作一些調(diào)整(參考 MyJessMA 測(cè)試工程)
?4) 如果應(yīng)用程序用到 base.jsp,則用 JessMA 3.2.1 的 jessma-base.jsp 替換原來(lái)的 base.jsp
JessMA 更新歷史:ChangLog.txt
開(kāi)發(fā)文檔目錄:
轉(zhuǎn)載于:https://blog.51cto.com/404201/1242355
總結(jié)
以上是生活随笔為你收集整理的高效 Java Web 开发框架 JessMA v3.2.1 正式发布的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 云虚拟主机和传统虚拟主机的区别?
- 下一篇: Java对象转出json并过滤指定属性