首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

AppFuse 极速構建 J2EE 應用完整教學:從專案建立到部署上線

     編輯:Java 相關知識

什麼是 AppFuse?

AppFuse 是 Matt Raible 建立的開源專案骨架,整合 Spring、Hibernate、Tapestry/Struts/JSF、Acegi (Spring Security)、XDoclet 等主流框架,透過 Ant 腳本自動化:專案建立、資料庫建構、代碼生成 (DAO/Service/Controller/View/測試)、打包部署。特色:「開箱即用」用戶管理、郵件、檔案上傳、國際化、主題切換、快取、日誌等企業級功能。

開發環境準備 (Windows 範例)

  • JDK 1.5+ → 設定 JAVA_HOME、PATH
  • Tomcat 5.5+ → 設定 CATALINA_HOME
  • Ant 1.6.2+ → 設定 ANT_HOME、PATH、複製 junit.jar 至 %ANT_HOME%/lib
  • MySQL 5.0+
  • Eclipse 3.1+ (建議安裝 Ant 檢視器外掛)

建立新專案

cd c:\opt\appfuse
ant new
# 互動式輸入:專案名(myapp)、資料庫(mysql)、根包名(org.appfuse)
# 完成後專案位於 c:\opt\myapp (與 appfuse 同級)

資料庫與編碼設定

  1. c:\opt\myapp\build.properties:設定 database.admin.password (MySQL root 密碼)。
  2. c:\opt\myapp\metadata\sql\mysql-create.sql:修改建庫語句支援 UTF-8:
    create database if not exists @DB-NAME@ CHARACTER SET utf8 COLLATE utf8_general_ci;

初始化專案

cd c:\opt\myapp
ant setup test-all
# setup: 建庫、建表、載入樣本資料、產生 DAO/Service、打包 WAR、部署 Tomcat
# test-all: 執行所有單元/整合測試

啟動 Tomcat,瀏覽 https://localhost:8080/myapp,預設帳號 mraible/tomcat (admin) 、tomcat/tomcat (user)。

建立業務表並生成代碼 (AppGen)

1. 建表 SQL

CREATE TABLE `employee` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `code` varchar(10) NOT NULL,
  `dept` varchar(50) NOT NULL,
  `name` varchar(20) NOT NULL,
  `status` varchar(10) NOT NULL,
  `telephone` varchar(20) DEFAULT NULL,
  `title` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 執行 AppGen 代碼生成

cd c:\opt\myapp\extras\appgen
ant install-detailed
# 互動式:
# 1) 從 table 產生 (table)
# 2) 表名: employee
# 3) 模組名: hr

3. 手動掛載 Hibernate 映射檔

編輯 src/dao/org/appfuse/dao/hibernate/applicationContext-hibernate.xml,在 mappingResources 加入:

<value>org/appfuse/hr/model/Employee.hbm.xml</value>

4. 重新部署驗證

cd c:\opt\myapp
ant deploy

選單出現 Employee List,完成 CRUD 基礎功能。

依業務需求客製化

需求修改檔案關鍵點
中文化介面web/WEB-INF/classes/ApplicationResources_zh_CN.properties編碼改 UTF-8,native2ascii 自動轉碼;按鈕 "done" → "完成"
列表頁調整欄位/順序web/pages/hr/employees.html移除 id 欄,調整顯示順序
表單下拉選單 (部門/職稱/狀態)employeeForm.html/.page, EmployeeForm.java使用 Tapestry PropertySelection + Resource Bundle 定義選項
新增「人事管理」角色權限metadata/sample-data.xml, security.xml, menu-config.xml, UserForm.java資料庫角色表、Acegi URL/方法攔截、選單 roles 屬性、下拉顯示中文
自訂主題web/styles/mytheme/ (複製 simplicity 修改 CSS 顏色), web.xml theme 參數預設綠色調主題

核心企業級功能速覽

  • 國際化:ApplicationResources*.properties 統一管理,Tapestry/JSP 共用,Eclipse 設定檔案編碼 UTF-8。
  • 主題切換:CSS Framework 三內建主題,管理員可 ?theme=xxx 切換,自訂主題只需新增目錄修改 CSS。
  • 安全控制 (Acegi/Spring Security):security.xml 定義 URL/方法級攔截,menu-config.xml 控制選單顯示,403.jsp 自訂拒絕頁。
  • 事務管理:Spring TransactionProxyFactoryBean 宣告式事務,txProxyTemplate 定義預設傳播屬性,Service 繼承覆寫。
  • 日誌:Log4j 整合,基類注入 Log log = LogFactory.getLog(getClass())。
  • 郵件:Spring MailSender + Velocity 模板,mail.properties 設定 SMTP。
  • 快取:Hibernate 二級快取支援 Ehcache/OScache,ehcache.xml 設定策略。

建置與部署流程自動化

build.xml 目標鏈:prepare → compile → jar → war → assemble-app → deploy。deploy 僅複製 EAR 至 WebSphere/Tomcat 部署目錄,支援熱部署。

結語

AppFuse 以「慣例優於配置」+ 代碼生成,將 J2EE 專案啟動時間從數天壓縮至數小時。掌握 Ant 腳本、AppGen 模板、Spring/Acegi 整合點,即可在專案中快速交付高品質企業級應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved