开源技术Struts、Spring、Hibernate(8)
北方民族大学硕士学位论文 开源技术Struts,Spring,Hibernate在MIS开发中的应用研究
saveOrUpdate(Object entity):根据实例状态,选择保存或者更新。 update(Object entity):更新实例的状态,要求entity是持久状态。 setMaxResults(int maxResults):设置分页的大小。 (3) 对象关系映射
对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。这样我们就由对数据库的操作完全转为对对象的操作[21]。
4.2.2业务逻辑层的衔接
我们已经知道:依赖注入具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者。本系统中,业务逻辑层主要是通过依赖注入实现的。如图4.4所示。Action主要负责操作的具体动作,而不具体实现,也就是说,它只是一个空壳,具体的业务逻辑实现由Spring的Bean完成,这样的直接目的是为了解耦,因为Action也是Class对象,在Struts中,Action负责具体的行为,一旦行为确定,就无法更改。如果系统需求变更或者稍作更改时,整个Action都要重写,由此也会让系统其它调用Action的地方一起更改,这样的后果类似于重做系统,这在软件开发中被称为失败。为了解决这样一个难题,我的设计方法是用依赖注入思想,业务逻辑Bean负责具体的行为实现,无论系统需求怎么变更,只要更改业务逻辑Bean,而Action和与Action相关的调用都可以保持不变,而Action调用Bean时,也不必每次都去实例化,在Spring的ApplicationContext容器中进行相关配置实现注入。
ActionSpringAplictionContext业务逻辑Bean图4.4 用Spring实现Struts与业务逻辑的桥接
例如下面代码,通过依赖注入,仅仅几行代码ModuleAction就获得了Bean moduleService和userOperationService的具体动作实现,并且完全实现了解耦。
-35- 北方民族大学硕士学位论文 开源技术Struts,Spring,Hibernate在MIS开发中的应用研究 bean中的属性,象abstract(抽象类),lazy-init(延迟实例化),autowire(自动装载)这些属性配置,请参阅相关书籍,这里不做重复。 4.2.3 整合后的框架 通过上面两个小结的设计,我们实现了业务逻辑与持久层的通讯和系统中业务逻辑的衔接。就形成了一套整合后的框架。这样的一个框架避免了Stuts用Action控制业务逻辑而无法解耦,从而容易使系统开发失败的问题。而且接口有效的封装了类的定义,这样后台实现的变动将对系统其它部分的影响最小,也就有效的解决了耦合过高的问题。Hibernate使开发人员在数据库操作方面,工作量降到了最低,大大减轻了软件开发人员的负担。整合后的框架主体部分如图4.5所示。这样一个设计,也就实现了系统开发低耦合,易重用,便于移植的目标。 ActionSpringAplictionContext接口实现接口业务逻辑Bean继承HibernateTemplateHibernate O/R映射管理数据库 图4.5 整合框架主体部分原理图 4.3框架处理流程原理设计 框架处理流程原理如下图4.6所示。用户通过浏览器发送Http请求(每个请求都是.do标识),发送后的请求由控制器(ActionServlet)负责接收,在配置文件中与点do匹配,并且寻找相关的Action。找到后把接受的数据填充ActionForm,自动执行ActionForm里面的方法,用来判断数据是否合法,如果返回为null,表示通过验证(validate方法)。如果返回非null,表示不能通过验证,这里需要说明的是ActionForm是可选的,根据需要才进行验证。验证成功后,控制器根据与之对应的Action执行execute方法。到此为止,只是利用的Struts MVC模式,并没有使用Struts处理业务逻辑和数据库操作。尽管Action有这个能力,但Action完全把这个任务交给相关的Bean。Action利用注入的业务逻辑Bean处理业务逻辑,由于这个调用不是自己完成的,是通过Spring 依赖注入的,所以这个地方可以做得完全解耦,因为Spring可以根据需要注入不同的Bean,只需要修改applicationContext.xml文件里所配置的Bean就可以了,而无需其它改动。Bean用来实现接口和继承HibernateDaoSupport类,接口用 -36- 北方民族大学硕士学位论文 开源技术Struts,Spring,Hibernate在MIS开发中的应用研究 来定义功能模块应该实现的功能,为了进一步解耦和定义模块边界,具体实现留给了Bean。继承HibernateDaoSupport是为了使用它所封装的属性和方法,Hibernate是用来建立对象关系映射的工具,通过它可以很容易的操作数据库。 HTTP Request Arrives.do?YControler receiver the RequestMap to ActionFind Action?foundnoCreate ActionFormNot foundReturn errorValidate ?NointerfaceCreate Action Execute()DAOProcess ActionForwardReturn actionForwardThis ActionMapping?yesReturn response 图4.6 框架处理流程原理UML状态图 4.4系统模块设计 系统设计是根据相应的需求提炼出对应的模块 (1)常规功能:有很多功能在较高层次上设计是类似的,除了一些细节。当用户登录后,首先都有对数据的浏览,然后根据管理员自己的需要,增加,删除,修改。设计如图4.7所示: -37- 北方民族大学硕士学位论文 开源技术Struts,Spring,Hibernate在MIS开发中的应用研究 一般用户管理员用户登录用户类型?查看修改数据库删除 图4.7 用户登录及其权限设计 (2)图片管理:图片是指所有单位需要发布出去的各种图片信息。这个模块提供信息为图片名称,所属模块等,提供操作为,添加指定类型模块,对其修改和删除等。 (3)模块管理:模块管理是对文章模块和图片模块进行管理,因为图片和文章都对自己进行了分类,分成不同类型的图片和不同类型的文章。提供信息是模块名称,模块内容以及类型。提供操作为添加指定类型模块,修改和对其删除。 (4)文章管理:文章既可以是事业单位的科普文章,文件,通知等,也可以是工厂的产品说明,产品发布信息,甚至是订单。总之是所在单位所需要提供出去共大家共享的信息。提供信息是,文章标题,作者,发布时间,修改时间。提供功能是添加,按文章类型检索,修改,删除等。 (5)链接管理:每一个后台一般都会对他们所管理的网站链接进行管理,管理那些本网站经常要访问的地方。通过这个模块得到的信息是:链接名称,链接地址,链接的图片。并提供添加,修改,删除链接功能。 (6)回收站管理:由于这个后台信息管理个系统可能有多个系统管理员,当一个系统管理员删除了其他管理员所需要的信息时,我们必须有办法对其记录和恢复。实现的功能是得到一下信息:删除对象名称,对象类型,时间。以及提供分类检索,恢复,和彻底删除。
…… 此处隐藏:3644字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




