想瞭解APPFUSE框架的使用問題

cangwu_lee 2008-01-19 10:02:33
我們在開發中使用了APPFUSE這個框架,對於測試、開發、布署,等都沒有什麼疑問(因為這個是測試驅動開發,所以測試在前)。只對WEB層不是那麼滿意,反應過慢。

想請教的是:
1、想瞭解一下各位對這個框架的看法。

2、假如項目中有一些頁面和框架的關係很鬆散的(無數據庫、無SESSION相關、……),大家怎麼對待這樣的頁面?是通過Action Mapping再邦進去框架中麼?這樣的頁面,如果直接調用,那麼開啟會很快的,假如再通過框架來打開,反應會慢很多。

意思就是說,頁面是否一定都通過這個框架才呈現給用戶。

...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
limon758 2008-02-01
  • 打赏
  • 举报
回复
貌似没有精通这个的朋友来帮你了
精通啊
太高
不发表言论
cangwu_lee 2008-01-21
  • 打赏
  • 举报
回复

謝謝樓上朋友,以及你的回復。

只不過,我是想請教比較熟悉/精通APPFUSE這個框架的朋友。
yerenmeng 2008-01-20
  • 打赏
  • 举报
回复
一、Appfuse简介

Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit等基础框架给出了示范,最新的1.8版本更是提供了对Taperstry和JSF的支持。在持久层,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring Framework。用户可以自由选择Struts、Spring/MVC,Webwork,Taperstry、JSF这几个web框架。采用TDD的开发方式,使用JUnit测试各层,甚至测试 jsp 输出的 w/o 错误。为了简化开发,预定义好了一套目录结构、基类、用来创建数据库、配置Tomcat、测试部署应用的 Ant 任务,帮助快速自动生成源程序和自动维护部分配置文件。

参考资料:
在https://appfuse.dev.java.net/可以下载Appfuse,目前的版本是1.8。
Appfuse的参考资料和文档可以在http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse查看。

二、Appfuse框架快速入门

AppFuse项目的主要目的是帮助开发人员减少在开始一个项目时所要做的工作。以下是使用它新建一个项目的基本步骤:

1、下载或从CVS (cvs -d :pserver:guest@cvs.dev.java.net:/cvs co appfuse)检出appfuse最新版本之源码。

2、安装J2SE 1.4+, 正确设置JAVA_HOME环境变量, 安装Ant 1.6.2+, 设置ANT_HOME环境变量。

3、安装MySQL 3.23.x+ (建议使用 4.1.7版本)和Tomcat 4.1.x+ (建议使用 5.0.28版本),设置CATALINA_HOME环境变量指向你Tomcat安装目录。

4、安装一个本地的SMTP服务器,或者如果你已经有一个可用的SMTP服务器的话,你可以去修改mail.properties (在web/WEB-INF/classes目录下) 和build.properties (在根目录下 -- 为 log4j信息) 以指向你的SMTP服务器 - 默认地它是指向你的本机的SMTP服务器的。

5、将lib/junit3.8.1/junit.jar文件拷贝到$ANT_HOME/lib目录下。

6、执行 ant new -Dapp.name=YOURAPPNAME -Ddb.name=YOURDBNAME 命令。这将创建一个名为“YOURAPPNAME”的目录。

警告: 该命令对于某些app.name值将不执行 - 不要使用 "test",任何包含 "appfuse" 在其中的名你,或者任何以数字、两个存折号(-) 等等混合出来的名称。

7、转到新的目录,执行ant的setup任务创建数据库,同时将你的应用发布到Tomcat服务器上。只有当你的root用户没有口令建库的任务才会工作。你也可以在需要的时候打开build.properties文件去更改这root用户的口令。如果你想进行测试并且希望了解是否所有方面均可以工作完好,那么你可以执行ant的test-all任务进行全面的测试 -当然前提是当你做测试的时候先将Tomcat服务器停止。

8、执行ant的test-reports任务 - 当这个任务执行完后,会有一条消息告诉你如何查看那些产生的测试报告。

当你确定你通过以上步骤配置好你的AppFuse开发环境后 - 下面你需要做的事就是学习一下指南来了解如何使用 AppFuse 进行你的开发。

可选择的安装

如果你愿意选择用iBATIS做为你的持久层框架,请专门去看一下extras/ibatis目录下的 README.txt 文件。
如果你愿意选择用Spring做为你的WEB层框架,请专门去看一下extras/spring目录下的 README.txt 文件。
如果你愿意选择用WebWork做为你的WEB层框架,请专门去看一下extras/webwork目录下的 README.txt 文件。
如果你愿意选择Tapestry做为你的web层框架,请专门去看一下extras/tapestry目录下的 README.txt 文件。
如果你愿意选择JSF做为你的web层框架,请专门去看一下extras/jsf目录下的 README.txt 文件。
 
如果你希望你能够通过脚本来自动地完成创建和测试,那么可以参考以下的脚本:
rm -r ../appfuse-spring
ant new -Dapp.name=appfuse-spring -Ddb.name=ibatis
cd ../appfuse-spring
ant install-ibatis install-springmvc
cd extras/ibatis
ant uninstall-hibernate
cd ../..
ant setup
ant test-all test-reports

如果你并不想安装iBATIS, Spring MVC 或者 WebWork,在你将你的项目放入代码控制仓库前你应该删除掉它们在extras目录中的安装内容。

--------------------------------------------------------------------------------

通常当你完成了以上所有步骤并使它们可以工作后,最可能的事是你会希望把“org.appfuse”包名,改为类似“com.company”这样的包名。现在做这件事已经非常简单了,所有你需要做的事就是下载一个改包名的工具,看看它的README文件,以了解它的安装和使用。

注意: 使用这个工具前你最好是将你的项目做一个备份,从而保证能够恢复它。

如果你将org.appfuse.webapp.form包改为如test.web.form这样的包名,你得同时去修改一下src/service包中的ConverterUtil类,getOpposingObject方法是你的朋友,让我们来看一下:

name = StringUtils.replace(name, "model", "webapp.form");
name = StringUtils.replace(name, "webapp.form", "model");

三、AppFuse 开发指南

如果你已经下载了AppFuse并且想在你的机器上安装它,你最好按照快速入门中的步骤进行安装。一旦你已经将所有的内容安装好后,以下的指南是你学习如何使用AppFuse进行开发的最好的教程。

注意: 这个开发指南在AppFuse的发布版本中同样包含一份,如果你想更新在你的工程中的那份拷贝(它在docs目录中),可以通过执行 "ant wiki"来完成。

从 1.6.1 版本开始,你可以产生这个指南所包含的源代码。如果你使用 Struts+Hibernate,你可以产生所有的源代码,如果使用Spring 或者 WebWork,因为写专门的安装程序比较麻烦所以你需要手工配置 Controllers 和 Actions。造成这个局面的主要原因是我没有为这些 web framework 使用 XDoclet 从而使得基于ant的安装程序功能受到了限制。 AppGen 工具可以产生所需要的全部源代码。

还有另外一个AppFuse Generator 项目建立的工具有类似AppGen的功能。

第一部分: 讲述如何创建POJO(对应相应的数据表)和 DAO(管理POJO持久化操作的对象)。

第二部分: 讲述如何创建一个 Business Facades ,它可以跟数据层 (DAOs)和web 层 (Actions 或 Controllers)交互。

第三部分: (Struts)讲述如何创建在你自己的appfuse工程里面创建Actions和JSPs。包括生成JSP并且进行修改定制让它们好看一点。此外,你需要编写WebTest来测试这个JSP的功能。其他可选的web framework如下所示:

Spring, Webwork, Jsf, Tapestry
第四部分: (Struts) 增加一个验证personForm的firstName和lastName为必填项的校验逻辑,并且增加一个列表面显示数据库中所有的person记录

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧