<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 14,  comments - 37,  trackbacks - 0
    原文地址:http://www.ibm.com/developerworks/cn/java/j-appfuse/

    AppFuse 是一個開放源碼的項目和應用程序,它使用了在 Java 平臺上構建的開放源碼工具來幫助我們快速而高效地開發 Web 應用程序。從核心上來說,AppFuse 是一個項目骨架,類似于通過向導創建新 Web 項目時 IDE 所創建的東西。當我們使用 AppFuse 創建一個項目時,它會提示我們將使用開放源碼框架,然后才創建項目。它使用 Ant 來驅動測試、代碼生成、編譯和部署。它提供了目錄和包結構,以及開發基于 Java 語言的 Web 應用程序所需要的庫。


    AppFuse 提供了很多應用程序需要的一些特性,包括:

    • 認證和授權
    • 用戶管理
    • Remember Me(這會保存您的登錄信息,這樣就不用每次都再進行登錄了)
    • 密碼提醒
    • 登記和注冊
    • SSL 轉換
    • E-mail
    • URL 重寫
    • 皮膚
    • 頁面修飾
    • 模板化布局
    • 文件上載

    典型的 AppFuse 應用程序




























    理由 1:測試
    AppFuse 的文檔展示了如何測試應用程序的所有 層次。它從數據庫層開始入手,使用了 DbUnit(請參看
    參考資料)在運行測試之前提前使用數據來填充自己的數據庫。在數據訪問(DAO)層,它使用了 Spring 的 AbstractTransactionalDataSourceSpringContextTests 類(是的,這的確是一個類的名字!)來允許簡單地加載 Spring 上下文文件。另外,這個類對每個 testXXX() 方法封裝了一個事務,并當測試方法存在時進行回滾。這種特性使得測試 DAO 邏輯變得非常簡單,并且不會對數據庫中的數據造成影響。

    在服務層,jMock (請參看 參考資料)用來編寫那些可以消除 DAO 依賴的真正 單元測試。這允許進行驗證業務邏輯正確的快速測試;我們不用擔心底層的持久性邏輯。

    在 Web 層,測試會驗證操作(Struts/WebWork)、控件(Spring MVC)、頁面(Tapestry)和管理 bean(JSF)如我們所期望的一樣進行工作。Spring 的 spring-mock.jar 可以非常有用地用來測試所有這些框架,因為它包含了一個 Servlet API 的仿真實現。如果沒有這個有用的庫,那么測試 AppFuse 的 Web 框架就會變得非常困難。

    UI 通常是開發 Web 應用程序過程中最為困難的一部分。它也是顧客最經常抱怨的地方 —— 這既是由于它并不是非常完美,也是由于它的工作方式與我們期望的并不一樣。另外,沒有什么會比在客戶面前作演示的過程中看到看到異常堆棧更糟糕的了!您的應用程序可能會非常可怕,但是客戶可能會要求您做到十分完美。永遠不要讓這種事情發生。Canoo WebTest 可以對 UI 進行測試。它使用了 HtmlUnit 來遍歷測試 UI,驗證所有的元素都存在,并可以填充表單的域,甚至可以驗證一個假想的啟用 Ajax 的 UI 與我們預期的工作方式一樣。(有關 WebTest 和 HTMLUnit 的鏈接請參看 參考資料。)

    為了進一步簡化 Web 的測試,Cargo(請參看 參考資料)對 Tomcat 的啟動和停止(分別在運行 WebTest 測試之前和之后)進行了自動化。


    理由 2:集成
    • 編譯、報告和代碼生成:Ant、Ant Contrib Tasks、Checkstyle、EMMA、Java2Html、PMD 和 Rename Packages
    • 測試框架:DbUnit、Dumbster、jMock、JUnit 和 Canoo WebTest
    • 數據庫驅動程序:MySQL 和 PostgreSQL
    • 持久性框架:Hibernate 和 iBATIS
    • IoC 框架:Spring
    • Web 框架:JSF、Spring MVC、Struts、Tapestry 和 WebWork
    • Web 服務:XFire
    • Web 工具:Clickstream、Display Tag、DWR、JSTL、SiteMesh、Struts Menu 和 URL Rewrite Filter
    • Security:Acegi Security
    • JavaScript 和 CSS:Scriptaculous、Prototype 和 Mike Stenhouse 的 CSS Framework

    理由 3:自動化


    理由 4:安全特性和可擴展性
    Acegi Security 是 J2EE 安全模型中曾經出現過的最好模型。它讓我們可以實現很多有用的特性,這些特性在 Servlet API 的安全模型中都不存在:認證、授權、角色保護方法、Remember Me、密碼加密、SSL 切換、用戶切換和注銷。它讓我們還可以將用戶證書存儲到 XML 文件、數據庫、LDAP 或單點登錄系統(例如 Yale 的 Central Authentication Service (CAS) 或者 SiteMinder)中。


    理由 5:使用 AppGen 生成代碼

    AppFuse 中提供了一個基于 Ant 和 XDoclet 的代碼生成工具,名叫 AppGen。默認情況下,常見的 DAO 和管理器都可以允許我們對任何普通老式 Java 對象(POJO)進行 CRUD 操作,但是在 Web 層上這樣做有些困難。AppGen 有幾個特性可以用來執行以下任務:

    • (使用 Middlegen 和 Hibernate 工具)從數據庫表中生成 POJO
    • 從 POJO 生成 UI
    • 為 DAO、管理器、操作/控制器和 UI 生成測試

    理由 6:文檔


    理由 7:社區


    參考資料

    學習

    獲得產品和技術
    • AppFuse on java.net:下載不同風味的 AppFuse。

    • WebWork:了解這個易于使用的 Web 框架。

    • DbUnit:查看更多有關 JUnit 擴展的內容。

    • jMock:創建動態仿真對象來簡化真正的單元測試。

    • Canoo WebTest:自動化 Web 應用程序的 UI 測試。

    • HtmlUnit:WebTest 的優秀 JavaScript 支持背后的基礎。

    • Cargo:自動啟動和停止容器。

    • Greenbox:一種代碼生成框架。


    討論
    posted on 2007-07-12 10:44 冰封的愛 閱讀(208) 評論(0)  編輯  收藏 所屬分類: J2EE
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久亚洲精品无码gv| 天天操夜夜操免费视频| 免费无码午夜福利片| 亚洲成人免费网站| 亚洲精品国精品久久99热一| 国内自产少妇自拍区免费| 亚洲黄色片免费看| 一个人免费视频在线观看www | 永久在线观看免费视频| 亚洲a∨无码精品色午夜| 亚洲一级毛片视频| 亚洲视频在线不卡| 久久综合图区亚洲综合图区| 亚洲一区二区三区在线视频 | 国产亚洲情侣久久精品| 自拍偷区亚洲国内自拍| 亚洲福利秒拍一区二区| 亚洲A∨无码无在线观看| 久久精品国产亚洲麻豆| 亚洲国产一区视频| 一本色道久久88综合亚洲精品高清 | 免费观看大片毛片| 好先生在线观看免费播放| **真实毛片免费观看| 99精品视频在线视频免费观看| 可以免费观看的毛片| 久久免费精品一区二区| 日本高清高色视频免费| 花蝴蝶免费视频在线观看高清版| 中文字幕永久免费视频| 中文字幕av无码不卡免费| 国产又黄又爽又大的免费视频| 久青草视频在线观看免费| 免费网站观看WWW在线观看| 99在线免费视频| 两个人看的www免费| 一区二区三区四区免费视频| 最刺激黄a大片免费网站| 日本片免费观看一区二区| 免费三级毛片电影片| 成人午夜18免费看|