空间站

北极心空

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

Appfuse是一个开源的J2EE开发框架,可以使用它对Spring、Hibernate、Struts、Tapestry、Ant、Xdoclet、Junit、Log4j等进行集成,以简洁快速地构建项目开发框架。Appfuse是一个项目骨架,类似于通过向导创建新Web项目时IDE所创建的东西。Appfuse可以支持Hibernate或iBATIS作为持久性框架。对于Web框架来说,我们可以使用JSF(JavaServer Faces)、Spring MVC、Struts、Tapestry 或 WebWork。在开发应用时Appfuse与楼上3.0的代码机有些类似,对于单表的增删查改维护,可以用Ant直接生成对应的JSP和Java代码,然后可以在此基础上进行修改以实现自己的业务功能,方便了应用的开发。

下面一个关于员工信息管理的例子演示了如何使用Appfuse快速构建J2EE应用:

1、 搭建开发环境:
下载JDK、Tomcat、Eclipse、MySQL、Appfuse、Ant等,配置Path、JAVA_HOME、CATALINA_HOME、ANT_HOME等环境变量。

2、建立项目并创建数据库
在Appfuse目录下运行ant new新建项目,将项目导入Eclipse。在项目build.properties文件中配置数据库连接,在\\metadata\sql\mysql-create.sql中配置数据库创建语句。运行ant setup test-all。此命令中“setup”完成了很多“设置”工作:创建数据库、构建dao和serive类、加载样本数据、创建war文件并部署到Tomcat。“test-all”运行所有的测试用例:对dao、service、页面的测试。启动Tomcat访问应用,会发现只运行了一次Ant脚本,但是系统已经拥有“用户管理”、“邮件”、“文件上传”等功能,这就是Appfuse开箱即用、快速开发的优势。

3、创建employee表并使用appgen自动生成代码
AppGen可以生成绝大部分我们需要的代码,比如dao类,service类,菜单、增删改的web 页面、配置文件、样本数据,等等。AppGen利用XDoclet生成代码,因此可以在extras/appgen/src看到很多.xdt文件,这些就是XDoclet的模版定义文件。如果希望自己编写dao和service类,就运行“install”这个target,否则就使用“install-detailed”。
在MySQL中创建运行install-detailed,并手工将Employee.hbm.xml添加到配置文件applicationContext-hibernate.xml中。运行ant deploy,打开页面,员工维护功能已经添加到页面中了。

4、根据项目需求调整代码
语言国际化:在资源文件里定义国际化文字,Appfuse会在Ant脚本运行的时候根据本地区域和语言设置,自动用native2ascii进行编码转换。

页面布局和样式:Appfuse 使用CSS框架来定义页面布局和样式,文件存放在\\web\styles中,我们可以仿照样例格式,在其中定义自己的主题文件。系统使用的主题由web\WEB-INF\web.xml中的“theme”参数指定。

系统安全:Appfuse使用Acegi进行安全管理。Acegi的配置信息位于\\web\WEB-INF\classes\security.xml。Acegi是被集成到Spring当中的,因此这个文件是Spring 的配置文件格式。在\\web\WEB-INF\web.xml中,该文件被指定在应用启动前会被加载。

事务控制:Appfuse利用Spring进行事务管理。Spring可以以声明的方式,对方法进行事务控制,并且可以根据实际的需要,调整控制粒度。“声明方式”的好处在于:核心代码只需要关注业务逻辑,而将事务控制完全交由配置文件管理,一方面是核心代码简洁清晰,另一方面也便于进行集中配置管理。Spring 提供了大量的参数和选项使开发者能够灵活地管理事务。

日志:Appfuse集成了Log4j进行日志管理,log4j.properties位于\\web\WEB-INF\classes目录下。Appfuse已经在绝大多数基类中加入了如下用于输出日志的成员变量:
protected final Log log = LogFactory.getLog(getClass());
因此,开发者只需要在自己的代码中调用log方法就可以了,例如:“log.debug("entered 'update' method");”。

posted on 2007-08-03 10:55 芦苇 阅读(546) 评论(0)  编辑  收藏 所属分类: JAVA

只有注册用户登录后才能发表评论。


网站导航: