欢迎来到天天文库
浏览记录
ID:6382163
大小:771.50 KB
页数:31页
时间:2018-01-12
《framework开发手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Framework架构手册前言本框架基于Struts2.0+Spring2.5+Hibernate3.2架构所建,用于中小型企业网站或管理系统基础架构。下面先简要介绍一下struts,spring,hibernatelStruts简介Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。l
2、Spring简介Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的InversionofControl容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/Rmapping解
3、决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。lHibrenate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得J
4、ava程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。在本架构中,struts承担的角色是在Web层的MVC模式的应用,不涉及具体业务逻辑的处理,只是页面显示和流程的控制,输入输出参数的封装等功能。Spring承担的角色是对应用中各层次的接口和类采用IOC模式进行统一管理配置,同时,还采用AOP和Spring对事务的处理机制来管理事
5、务,并根据Spring与Hibernate的集成,调用Spring提供的HibernateTemplate来处理底层DAO。Hibernate承担的角色是底层数据库实体对象的封装,以及实体之间关系的映射,本架构中采用注解来进行O-RMapping。第一章技术架构如图所示,系统划分为ModelBean(PO),DAO,BusinessLogic(Service),WEB四个主要层次,其中PO可在各层使用。基础架构如下图所示,在程序开发时要在工程中加入该基础架构,并在其上做扩展(继承extends)开发,其中各个层次与基础架构关系对应如下:开发层次需继承的基础架构Web(
6、action)com.otc.framework.web.struts.actions.BaseActionBusinesslogic(service)com.otc.framework.service.impl.BaseManagerDAOcom.otc.framework.dao.hibernate.BaseDAOHibernateModel(PO)com.otc.framework.model.BaseModel基础架构图1ModelBean(PO)层PO(PersistenceObject),持久化对象,为我们从项目中抽象出的实体模型,一般对应与数据库的一个表
7、,其中实体中的属性与数据库表中的字段相对应。在以上几个层次中都会用到PO,如在web层中会用来接受前台表单提交的数据,在DAO层中会利用hibernate对PO进行数据操作。由于在项目中用到了hibernate,因此在生成PO后,会进行hibernate的配置。1.1类图注:红色线条的类代表框架里的基类,黑色线条的类代表具体应用的ModelBean1.2.样例代码publicabstractclassBaseModelimplementsSerializable{protectedfinalLoglogger=LogFactory.getLog(ge
此文档下载收益归作者所有