Appfuse框架 |
一、Appfuse簡介 Appfuse是Matt Raible 開發(fā)的一個指導(dǎo)性的入門級J2EE框架,它對如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit等基礎(chǔ)框架給出了示范,最新的1.8版本更是提供了對Taperstry和JSF的支持。在持久層,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring Framework。用戶可以自由選擇Struts、Spring/MVC,Webwork,Taperstry、JSF這幾個web框架。采用TDD的開發(fā)方式,使用JUnit測試各層,甚至測試 jsp 輸出的 w/o 錯誤。為了簡化開發(fā),預(yù)定義好了一套目錄結(jié)構(gòu)、基類、用來創(chuàng)建數(shù)據(jù)庫、配置Tomcat、測試部署應(yīng)用的 Ant 任務(wù),幫助快速自動生成源程序和自動維護部分配置文件。 參考資料: AppFuse項目的主要目的是幫助開發(fā)人員減少在開始一個項目時所要做的工作。以下是使用它新建一個項目的基本步驟: 1、下載或從CVS (cvs -d :pserver:guest@cvs.dev.java.net:/cvs co appfuse)檢出appfuse最新版本之源碼。 2、安裝J2SE 1.4+, 正確設(shè)置JAVA_HOME環(huán)境變量, 安裝Ant 1.6.2+, 設(shè)置ANT_HOME環(huán)境變量。 3、安裝MySQL 3.23.x+ (建議使用 4.1.7版本)和Tomcat 4.1.x+ (建議使用 5.0.28版本),設(shè)置CATALINA_HOME環(huán)境變量指向你Tomcat安裝目錄。 4、安裝一個本地的SMTP服務(wù)器,或者如果你已經(jīng)有一個可用的SMTP服務(wù)器的話,你可以去修改mail.properties (在web/WEB-INF/classes目錄下) 和build.properties (在根目錄下 -- 為 log4j信息) 以指向你的SMTP服務(wù)器 - 默認地它是指向你的本機的SMTP服務(wù)器的。 5、將lib/junit3.8.1/junit.jar文件拷貝到$ANT_HOME/lib目錄下。 6、執(zhí)行 ant new -Dapp.name=YOURAPPNAME -Ddb.name=YOURDBNAME 命令。這將創(chuàng)建一個名為“YOURAPPNAME”的目錄。 警告: 該命令對于某些app.name值將不執(zhí)行 - 不要使用 "test",任何包含 "appfuse" 在其中的名你,或者任何以數(shù)字、兩個存折號(-) 等等混合出來的名稱。 7、轉(zhuǎn)到新的目錄,執(zhí)行ant的setup任務(wù)創(chuàng)建數(shù)據(jù)庫,同時將你的應(yīng)用發(fā)布到Tomcat服務(wù)器上。只有當你的root用戶沒有口令建庫的任務(wù)才會工作。你也可以在需要的時候打開build.properties文件去更改這root用戶的口令。如果你想進行測試并且希望了解是否所有方面均可以工作完好,那么你可以執(zhí)行ant的test-all任務(wù)進行全面的測試 -當然前提是當你做測試的時候先將Tomcat服務(wù)器停止。 8、執(zhí)行ant的test-reports任務(wù) - 當這個任務(wù)執(zhí)行完后,會有一條消息告訴你如何查看那些產(chǎn)生的測試報告。 當你確定你通過以上步驟配置好你的AppFuse開發(fā)環(huán)境后 - 下面你需要做的事就是學習一下指南來了解如何使用 AppFuse 進行你的開發(fā)。 可選擇的安裝 如果你愿意選擇用iBATIS做為你的持久層框架,請專門去看一下extras/ibatis目錄下的 README.txt 文件。 如果你并不想安裝iBATIS, Spring MVC 或者 WebWork,在你將你的項目放入代碼控制倉庫前你應(yīng)該刪除掉它們在extras目錄中的安裝內(nèi)容。 -------------------------------------------------------------------------------- 通常當你完成了以上所有步驟并使它們可以工作后,最可能的事是你會希望把“org.appfuse”包名,改為類似“com.company”這樣的包名?,F(xiàn)在做這件事已經(jīng)非常簡單了,所有你需要做的事就是下載一個改包名的工具,看看它的README文件,以了解它的安裝和使用。 注意: 使用這個工具前你最好是將你的項目做一個備份,從而保證能夠恢復(fù)它。 如果你將org.appfuse.webapp.form包改為如test.web.form這樣的包名,你得同時去修改一下src/service包中的ConverterUtil類,getOpposingObject方法是你的朋友,讓我們來看一下: name = StringUtils.replace(name, "model", "webapp.form"); 三、AppFuse 開發(fā)指南 如果你已經(jīng)下載了AppFuse并且想在你的機器上安裝它,你最好按照快速入門中的步驟進行安裝。一旦你已經(jīng)將所有的內(nèi)容安裝好后,以下的指南是你學習如何使用AppFuse進行開發(fā)的最好的教程。 注意: 這個開發(fā)指南在AppFuse的發(fā)布版本中同樣包含一份,如果你想更新在你的工程中的那份拷貝(它在docs目錄中),可以通過執(zhí)行 "ant wiki"來完成。 從 1.6.1 版本開始,你可以產(chǎn)生這個指南所包含的源代碼。如果你使用 Struts+Hibernate,你可以產(chǎn)生所有的源代碼,如果使用Spring 或者 WebWork,因為寫專門的安裝程序比較麻煩所以你需要手工配置 Controllers 和 Actions。造成這個局面的主要原因是我沒有為這些 web framework 使用 XDoclet 從而使得基于ant的安裝程序功能受到了限制。 AppGen 工具可以產(chǎn)生所需要的全部源代碼。 還有另外一個AppFuse Generator 項目建立的工具有類似AppGen的功能。 第一部分: 講述如何創(chuàng)建POJO(對應(yīng)相應(yīng)的數(shù)據(jù)表)和 DAO(管理POJO持久化操作的對象)。 第二部分: 講述如何創(chuàng)建一個 Business Facades ,它可以跟數(shù)據(jù)層 (DAOs)和web 層 (Actions 或 Controllers)交互。 第三部分: (Struts)講述如何創(chuàng)建在你自己的appfuse工程里面創(chuàng)建Actions和JSPs。包括生成JSP并且進行修改定制讓它們好看一點。此外,你需要編寫WebTest來測試這個JSP的功能。其他可選的web framework如下所示:
第四部分: (Struts) 增加一個驗證personForm的firstName和lastName為必填項的校驗邏輯,并且增加一個列表面顯示數(shù)據(jù)庫中所有的person記錄。 |