Posted on 2007-04-27 17:01
kook 阅读(478)
评论(0) 编辑 收藏 所属分类:
J2EE
安装好了系统,我先来对它做一个总体介绍。
Raible给AppFuse这个Web应用写了好几种实现方式,有Struts Spring Hibernate、Spring iBATIS、WebWork Spring Hibernate、JSF Spring Hibernate、Tapestry Spring Hibernate 等等。目前在国内最流行的应该就是Struts Spring Hibernate了,就以这种框架为例介绍AppFuse吧。
Struts Spring Hibernate使用了基于MVC模式的struts的框架,并使用hibernate进行持久层操作,使用Spring对各个组件进行“依赖注射”。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用,具有组件化的优点从而更易于实现对大规模系统的开发和管理。使用AppFuse,你应该对Struts和Hibernate有一定的了解。
下面分别介绍各层的功能:
1. Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。Controller功能核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Action控制器对象之间的映射。所有的Action对象都是从Struts的Action类派生的子类。Action对象封装了具体的控制逻辑,调用Model层的业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象为显示提供一个模型,可以通过定义属性描述客户端表单数据。从它派生子类对象,利用它和Struts提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持。通过ActionForm组件对象实现了对View和Model之间交互的支持。同时,控制器会负责处理异常及UI验证
2. Model:代表的是应用的业务逻辑。Model分为两层:持久层和业务层,用这种模式将底层数据访问操作与高层业务逻辑分离开。持久层使用ORM开源框架:Hibernate。 Hibernate为java提供了OR持久化机制和查询服务。业务层框架使用Spring。Spring着手于“依赖注入”这样的概念。Spring把程序中所涉及到包含业务逻辑和Dao的Objects——例如transaction management handler(事物管理控制)、Object Factoris(对象工厂)、service objects(服务组件)——都通过XML来配置联系起来,降低了各个组件的耦合度。
3. View:View是应用的表示面,通过JSP技术实现。Struts提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和ActionForm的映射,完成对用户数据的封装。
Action调用Model层方法时通过读取Spring框架配置文件来创建实例。Spring框架控制主体公共部分,而把用户要使用的部分定义了接口,然后用Spring框架调用这个接口,实现回调。Model层分为两层:业务层(Manager)和持久层(DAO),每一层又分接口和实现两部分。Action调用Manager层的接口,Manager的Implement实现高层业务逻辑并调用DAO接口实现对数据库的操作。这三层之间的调用均通过Spring的“依赖注入”机制实现。