appfuse

  

AppFuse

Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdcolet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持。

http://baike.baidu.com/view/835752.htm

1 释名

app代表application,fuse意思是“融合”。(引自http://wl1985.javaeye.com/blog/149259

2 用它能做什么

AppFuse 提供了很多应用程序需要的一些特性,包括:

认证和授权
用户管理
Remember Me(这会保存您的登录信息,这样就不用每次都再进行登录了)
密码提醒
登记和注册
SSL 转换
E-mail
URL 重写
皮肤
页面修饰
模板化布局
文件上载
3 作者

Matt Raible,当今开源世界一个比较活跃的开发者,他是AppFuse、Struts Menu的作者,也是XDoclet、DisplayTag等一些著名开源项目的积极参与者,《Hibernate In Action》的作者就在感谢的名单里面提到他,XDoclet的下载版本中所带的Hibernate标签部分的例子就是他写的,他还是2004年Apache技术年会的主讲人之一。

4 架构

persistence层
这个层面中,appfuse首先提供了一个功能非常抽象的interface DAO,试图覆盖普通的CRUD操作,提供的方法都是针对Object进行操作,伴随这个interface,还提供了一个hibernate版本的i实现类BaseDAOHibernate。

logic层
这个层面需要解决的重头问题是事务,可以担当这个层面重任的技术有很多,如ejb中的session bean,但appfuse选择了springframework。appfuse在这个层面同样提供了巨抽象的一个interface,Manager,伴随这个interface,还提供了一个具体的实现类 BaseManager。

web层
这个层面appfuse集成了几种当前常用的framework,struts是appfuse的首选,appfuse提供了一个BaseAction,其中提供了一些便利的方法,如从spring的applicationContext中根据XXXManager的name拿到XXXManager,从session拿到当前的user信息,以及对errrorMessage的处理,需要提及的是里面的execute方法,根据request中的method这个parameter去将request dispatch到相应的handler,具体细节可参考struts中的LookupDispatchAction(这个class好象是从struts-1.1后才有的)。


这个层面还提供了一个BaseForm作为一个Base FormBean,提供了一些较高抽象层次的便利方法,如equals和基本的validation。

这个层面appfuse还提供两个业务相关的jsp templet,一个是业务对象form page,一个是业务对象list page。
业务对象form是针对一个业务对象,完成新建,修改,删除等操作。这个page中涉及到的技术主要有jstl和struts的form taglib,这两中技术这里就不多讲了,需要提及的是appfuse提供的一个label tag,这个tag能够根据我们在validation中对formbean的validation配置,决定是否显示*号(表示必须填写)。业务对象list是针对一批业务对象,完成排序等操作。这个page中涉及到的技术主要有display tag,一个很不错的taglib。

appfuse考虑到jsp页面的表现和内容分开,引入了一个sitemesh作为整个页面表现的框架,这是一个open source的framework,主要的使用方法是定义一个decorator page,然后配上一个filter去decorator我们的
业务页面。

appfuse在jsp这个层面还引入了struts-menu,这是一个不错的开源的taglib,用来处理menu的,appfuse使用struts-menu的方式是通过静态的xml的配置,我们可能要更灵活一点(也许是根据user的权限动态的取menu list,关于user manager和权限,后面会提及到)。

appfuse还提供了对error和message的集中处理。

5  如何应用AppFuse开发业务

appfuse给我们提供了一个完整的架构,我们只需要向这个架构中填料就可以了,下面大概阐述如何利用appfuse进行实际的业务开发。如appfuse的作者在wiki中推荐的那样,我们可以按照从后向前的顺序进行开发:


分析业务模型,建立model
建立dao
建立manage
开发action和page

appfuse中提供了appgen代码生成工具,用来根据appfuse设定好的templet code,利用xdoclet自动生成各个层面的代码,足显了xdoclet的强大和无处不在。

(以上是根据网上搜集的文章拼接而成)

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/vitamin2008/archive/2008/04/11/2282983.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值