Portal-Basic 是一套功能完備的高性能 Full-Stack Web 應(yīng)用開發(fā)框架,內(nèi)置可擴(kuò)展的 MVC Web 基礎(chǔ)架構(gòu)和 DAO 數(shù)據(jù)庫訪問組件(內(nèi)部已提供了 Hibernate、MyBatis 與 JDBC DAO 組件),集成了 Action 攔截、Form / Dao / Spring Bean 裝配、國(guó)際化、文件上傳下載和頁面靜態(tài)化等基礎(chǔ) Web 應(yīng)用組件,提供高效靈活的純 Jsp/Servlet API 編程模型,可完美整合 Spring,支持 Action Convention,能快速開發(fā)傳統(tǒng)風(fēng)格和 RESTful 風(fēng)格應(yīng)用程序,文檔和示例完善,非常容易學(xué)習(xí)。
Portal-Basic 源碼、示例及文檔資源:請(qǐng)?jiān)L問項(xiàng)目主頁 ^_*
Portal-Basic在設(shè)計(jì)之初就充分注重功能、性能與使用體驗(yàn)。Portal-Basic主要特點(diǎn):
★ 功能全面:內(nèi)置穩(wěn)定高效的MVC基礎(chǔ)架構(gòu)和DAO框架,支持Action攔截、Form Bean / Dao Bean / Spring Bean裝配和聲明式事務(wù),提供國(guó)際化、文件上傳下載、緩存和頁面靜態(tài)化等常用Web組件,能滿足絕大部分Web應(yīng)用的需要。
★ 高度擴(kuò)展:Portal-Basic通過的plug-in機(jī)制可以靈活擴(kuò)展,Portal-Basic發(fā)布包中自帶的portal-basic-ext-rest和portal-basic-ext-spring均以插件的形式提供,用戶可根據(jù)需要加載或卸載這些插件。應(yīng)用程序開發(fā)者也可以根據(jù)實(shí)際需要編寫自定義插件來擴(kuò)展Portal-Basic。
★ 強(qiáng)大的整合能力:Portal-Basic是一個(gè)Full-Stack框架,同時(shí)也是一個(gè)開放式框架,可以以非常簡(jiǎn)單的方式整合第三方組件。本開發(fā)手冊(cè)會(huì)詳細(xì)闡述如何在Portal-Basic中整合FreeMarker、Velocity、UrlRewrite、EHCache-Web、Spring、Hibernate和MyBaits等常用框架和組件。
★ 高性能:性能要求是Portal-Basic的硬性指標(biāo),從每個(gè)模塊的設(shè)計(jì)到每行代碼的實(shí)現(xiàn)都力求簡(jiǎn)潔高效。另外,Portal-Basic并沒有對(duì)JSP/Servet API進(jìn)行過多封裝,開發(fā)者仍然使用JSP/Servet API開發(fā)應(yīng)用程序,沒有過多的迂回,性能得到保證。
★ 優(yōu)秀的使用體驗(yàn):Portal-Basic的設(shè)計(jì)目標(biāo)之一是提供良好的開發(fā)體驗(yàn),盡量減少應(yīng)用程序開發(fā)者的工作,API的設(shè)計(jì)力求簡(jiǎn)單、完整、明確。同時(shí),Portal-Basic為應(yīng)用開發(fā)提供了大量Util工具,用來處理應(yīng)用程序開發(fā)過程中通常會(huì)遇到的一般性問題,進(jìn)一步減少應(yīng)用程序開發(fā)者的工作負(fù)擔(dān)。
★ 平緩的學(xué)習(xí)曲線:平緩的學(xué)習(xí)曲線:學(xué)習(xí)使用Portal-Basic只需掌握一定的Core Java與JSP/Servlet知識(shí),本開發(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ù)支持:除了提供完善的開發(fā)手冊(cè)和示例代碼以外,還提供博客和QQ群用于解答使用Portal-Basic過程中碰到的所有問題。
* Portal-Basic 總體架構(gòu)

* Portal-Basic 應(yīng)用程序依賴關(guān)系

Portal-Basic 3.1.1 更新:
1、支持異步 Action(“異步處理” 是 Servlet 3.0 的新特性之一):
1) com.bruce.mvc 包中增加異步任務(wù)接口 AsyncTask 及實(shí)現(xiàn)類 AbstractAsyncTask、ActionTask
2) com.bruce.mvc.ActionSupport 增加異步處理相關(guān)方法:startAsync(...)
2、支持異步 REST Action(在 portal-basic-exe-rest-3.1.1 插件中實(shí)現(xiàn)):
1) com.bruce.ext.rest 包中增加 REST 異步任務(wù)實(shí)現(xiàn)類 RestActionTask
2) com.bruce.ext.rest.RestActionSupport 增加異步處理支持
3、增加兩個(gè) JDBC SessionMgr:
1) com.bruce.dao.jdbc.DruidSessionMgr :使用 Druid 連接池連接數(shù)據(jù)庫
2) com.bruce.dao.jdbc.JndiSessionMgr :使用 JNDI 連接池連接數(shù)據(jù)庫
4、其它更新:
1) 測(cè)試工程 MyPortal 加入異步處理 Action 請(qǐng)求和異步 Rest Action 請(qǐng)求示例
2) 測(cè)試工程 MyPortal 的所有 Hibernate 和 JDBC 示例都使用 Druid 取代原來的 Proxool 連接池
3) 開發(fā)手冊(cè)《Portal-Basic Java Web 應(yīng)用開發(fā)框架(v3.1.20130420)》加入 “異步 Action” 章節(jié)
4) Portal-Basic 的依賴庫 “portal-basic-lib” 和 “spring-lib” 中的所有 jar 包更新到最新版本
5、應(yīng)用程序升級(jí)說明:
1) Portal-Basic 3.1.1 的 “異步處理” 功能只適用于支持 Servlet 3.0 的應(yīng)用環(huán)境(如:JaveEE 6 / Tomcat 7)
2) 如果應(yīng)用環(huán)境不支持 Servlet 3.0(如:JaveEE 5 / Tomcat 6),則只能使用原有功能
3) Portal-Basic 3.1.1 不再提供 JDK 1.5 的兼容版本
4) Portal-Basic 3.1.1 完全兼容 Portal-Basic 3.0.1 (非 JDK 1.5 版本)
Portal-Basic 3.0.1 更新:
1、增加 Action Convention,支持“Action 零配置”:
1) 根據(jù) Action 請(qǐng)求的地址信息自動(dòng)加載 Action,并調(diào)用相應(yīng)的入口方法處理請(qǐng)求
2) 根據(jù) Action 請(qǐng)求的地址信息和 Action Result 自動(dòng)組合出輸出頁面的地址并轉(zhuǎn)發(fā)
3) 通過 @Result/@Results 和 @ExceptionMapping/@ExceptionMappings 注解自定義 Result 和 Exception 處理策略
2、增加 REST 支持:
1) 增加 REST 插件包 portal-basic-ext-rest-3.0.1.jar 用于支持 REST
2) portal-basic-ext 通過 com.bruce.ext.rest.RestDispatcher 過濾器把 REST 請(qǐng)求轉(zhuǎn)換為 Action 請(qǐng)求
3) portal-basic-ext 提供 com.bruce.ext.rest.RestActionSupport 作為處理 REST 請(qǐng)求的 Action 基類
4) Action 的 REST 請(qǐng)求處理方法通過聲明 @Get/@Post/@Put/@Delete 注解來匹配 REST 地址格式,并注入?yún)?shù)
5) 內(nèi)置 Rails-style REST 標(biāo)準(zhǔn)方法
6) 同時(shí)支持 HTML/XML/JSON 三種視圖格式,應(yīng)用程序也可以擴(kuò)展自己的視圖格式
7) portal-basic-ext 與 Action Convention 結(jié)合使用能實(shí)現(xiàn)“零配置”處理 REST 請(qǐng)求
開發(fā)文檔目錄:

相關(guān)鏈接:
Portal-Basic Java Web 應(yīng)用開發(fā)框架 —— 概述Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(一) —— 配置文件Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(二) —— Action 使用Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(三) —— 國(guó)際化Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(四) —— 文件上傳和下載Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(五) —— DAO 框架Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(六) —— 公共組件Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(七) —— 頁面靜態(tài)化Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(八) —— 整合 FreemarkerPortal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(九) —— 多入口 ActionPortal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(十) —— 新 DAO 訪問接口Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(十一) —— 整合 SpringPortal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(十二) —— Action Convention
Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(十三) —— REST Convention
Portal-Basic Java Web 應(yīng)用開發(fā)框架:應(yīng)用篇(十四) —— 異步 Action
CodeProject
原文出處:怪獸的博客 怪獸的微博 怪獸樂園Q群