空間站

          北極心空

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

          Appfuse是一個(gè)開源的J2EE開發(fā)框架,可以使用它對Spring、Hibernate、Struts、Tapestry、Ant、Xdoclet、Junit、Log4j等進(jìn)行集成,以簡潔快速地構(gòu)建項(xiàng)目開發(fā)框架。Appfuse是一個(gè)項(xiàng)目骨架,類似于通過向?qū)?chuàng)建新Web項(xiàng)目時(shí)IDE所創(chuàng)建的東西。Appfuse可以支持Hibernate或iBATIS作為持久性框架。對于Web框架來說,我們可以使用JSF(JavaServer Faces)、Spring MVC、Struts、Tapestry 或 WebWork。在開發(fā)應(yīng)用時(shí)Appfuse與樓上3.0的代碼機(jī)有些類似,對于單表的增刪查改維護(hù),可以用Ant直接生成對應(yīng)的JSP和Java代碼,然后可以在此基礎(chǔ)上進(jìn)行修改以實(shí)現(xiàn)自己的業(yè)務(wù)功能,方便了應(yīng)用的開發(fā)。

          下面一個(gè)關(guān)于員工信息管理的例子演示了如何使用Appfuse快速構(gòu)建J2EE應(yīng)用:

          1、 搭建開發(fā)環(huán)境:
          下載JDK、Tomcat、Eclipse、MySQL、Appfuse、Ant等,配置Path、JAVA_HOME、CATALINA_HOME、ANT_HOME等環(huán)境變量。

          2、建立項(xiàng)目并創(chuàng)建數(shù)據(jù)庫
          在Appfuse目錄下運(yùn)行ant new新建項(xiàng)目,將項(xiàng)目導(dǎo)入Eclipse。在項(xiàng)目build.properties文件中配置數(shù)據(jù)庫連接,在\\metadata\sql\mysql-create.sql中配置數(shù)據(jù)庫創(chuàng)建語句。運(yùn)行ant setup test-all。此命令中“setup”完成了很多“設(shè)置”工作:創(chuàng)建數(shù)據(jù)庫、構(gòu)建dao和serive類、加載樣本數(shù)據(jù)、創(chuàng)建war文件并部署到Tomcat。“test-all”運(yùn)行所有的測試用例:對dao、service、頁面的測試。啟動(dòng)Tomcat訪問應(yīng)用,會(huì)發(fā)現(xiàn)只運(yùn)行了一次Ant腳本,但是系統(tǒng)已經(jīng)擁有“用戶管理”、“郵件”、“文件上傳”等功能,這就是Appfuse開箱即用、快速開發(fā)的優(yōu)勢。

          3、創(chuàng)建employee表并使用appgen自動(dòng)生成代碼
          AppGen可以生成絕大部分我們需要的代碼,比如dao類,service類,菜單、增刪改的web 頁面、配置文件、樣本數(shù)據(jù),等等。AppGen利用XDoclet生成代碼,因此可以在extras/appgen/src看到很多.xdt文件,這些就是XDoclet的模版定義文件。如果希望自己編寫dao和service類,就運(yùn)行“install”這個(gè)target,否則就使用“install-detailed”。
          在MySQL中創(chuàng)建運(yùn)行install-detailed,并手工將Employee.hbm.xml添加到配置文件applicationContext-hibernate.xml中。運(yùn)行ant deploy,打開頁面,員工維護(hù)功能已經(jīng)添加到頁面中了。

          4、根據(jù)項(xiàng)目需求調(diào)整代碼
          語言國際化:在資源文件里定義國際化文字,Appfuse會(huì)在Ant腳本運(yùn)行的時(shí)候根據(jù)本地區(qū)域和語言設(shè)置,自動(dòng)用native2ascii進(jìn)行編碼轉(zhuǎn)換。

          頁面布局和樣式:Appfuse 使用CSS框架來定義頁面布局和樣式,文件存放在\\web\styles中,我們可以仿照樣例格式,在其中定義自己的主題文件。系統(tǒng)使用的主題由web\WEB-INF\web.xml中的“theme”參數(shù)指定。

          系統(tǒng)安全:Appfuse使用Acegi進(jìn)行安全管理。Acegi的配置信息位于\\web\WEB-INF\classes\security.xml。Acegi是被集成到Spring當(dāng)中的,因此這個(gè)文件是Spring 的配置文件格式。在\\web\WEB-INF\web.xml中,該文件被指定在應(yīng)用啟動(dòng)前會(huì)被加載。

          事務(wù)控制:Appfuse利用Spring進(jìn)行事務(wù)管理。Spring可以以聲明的方式,對方法進(jìn)行事務(wù)控制,并且可以根據(jù)實(shí)際的需要,調(diào)整控制粒度。“聲明方式”的好處在于:核心代碼只需要關(guān)注業(yè)務(wù)邏輯,而將事務(wù)控制完全交由配置文件管理,一方面是核心代碼簡潔清晰,另一方面也便于進(jìn)行集中配置管理。Spring 提供了大量的參數(shù)和選項(xiàng)使開發(fā)者能夠靈活地管理事務(wù)。

          日志:Appfuse集成了Log4j進(jìn)行日志管理,log4j.properties位于\\web\WEB-INF\classes目錄下。Appfuse已經(jīng)在絕大多數(shù)基類中加入了如下用于輸出日志的成員變量:
          protected final Log log = LogFactory.getLog(getClass());
          因此,開發(fā)者只需要在自己的代碼中調(diào)用log方法就可以了,例如:“log.debug("entered 'update' method");”。

          posted on 2007-08-03 10:55 蘆葦 閱讀(571) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 白银市| 岫岩| 沁源县| 鱼台县| 宁南县| 遂溪县| 常山县| 高尔夫| 抚远县| 东平县| 衡阳市| 沁阳市| 桂平市| 崇左市| 揭东县| 得荣县| 栾川县| 安康市| 巴林右旗| 东辽县| 喀喇沁旗| 黄大仙区| 塔城市| 昭通市| 沂源县| 女性| 白玉县| 金山区| 泸定县| 沭阳县| 雷山县| 洪洞县| 日土县| 平潭县| 揭阳市| 同仁县| 搜索| 昌黎县| 南通市| 宁海县| 蓝山县|