AppFuse 是一個開放源碼的項目和應用程式,它使用了在 Java 平台上構建的開放源碼工具來協助我們快速而高效地開發 Web 應用程式。我最初開發它是為了減少在為客戶構建新 Web 應用程式時所花費的那些不必要的時間。從核心上來說,AppFuse 是一個項目骨架,類似於通過嚮導建立新 Web 項目時 IDE 所建立的東西。當我們使用 AppFuse 建立一個項目時,它會提示我們將使用開放源碼架構,然後才建立項目。它使用 Ant 來驅動測試、代碼產生、編譯和部署。它提供了目錄和包結構,以及開發基於 Java 語言的 Web 應用程式所需要的庫。
與大部分 “new project” 嚮導不同,AppFuse 建立的項目從最開始就包含很多類和檔案。這些檔案用來實現特性,不過它們同時也會在您開發應用程式時被用作樣本。通過使用 AppFuse 啟動新項目,我們通常可以減少一到兩周的開發時間。我們不用擔心如何將開放源碼架構配置在一起,因為這都已經完成了。我們的項目都已提前配置來與資料庫進行互動,它會部署到應用伺服器上,並對使用者進行認證。我們不必實現安全特性,因為這都早已整合了。
當我最初開發 AppFuse 時,它只支援 Struts 和 Hibernate。經過幾年的努力,我發現了比 Struts 更好的 Web 架構,因此我還添加了為這些 Web 架構使用的選項。現在,AppFuse 可以支援 Hibernate 或 iBATIS 作為持久性架構。對於 Web 架構來說,我們可以使用 JavaServer Faces(JSF)、Spring MVC、Struts、Tapestry 或 WebWork。
AppFuse 提供了很多應用程式需要的一些特性,包括:
認證和授權
使用者管理
Remember Me(這會儲存您的登入資訊,這樣就不用每次都再進行登入了)
密碼提醒
登記和註冊
SSL 轉換
E-mail
URL 重寫
皮膚
頁面修飾
模板化布局
檔案上傳
這種 “開箱即用” 的功能是 AppFuse 與其他 CRUD 代 架構的區別之一(CRUD 取自建立、檢索、更新 和刪除 幾個操作的英文首字母),包括 Ruby on Rails、Trails 和 Grails。上面提到的這些架構,以及 AppFuse,都讓我們可以從資料庫表或現有的模型對象中產生首頁/細節頁。
圖 1 闡述了一個典型 AppFuse 應用程式的概念設計:
圖 1. 典型的 AppFuse 應用程式