硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc

上传人:哈尼dd 文档编号:3966861 上传时间:2019-10-11 格式:DOC 页数:65 大小:5.31MB
返回 下载 相关 举报
硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc_第1页
第1页 / 共65页
硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc_第2页
第2页 / 共65页
硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc_第3页
第3页 / 共65页
硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc_第4页
第4页 / 共65页
硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc》由会员分享,可在线阅读,更多相关《硕士学位论文-开源技术Struts、Spring、Hibernate在MIS开发中的应用研究.doc(65页珍藏版)》请在三一文库上搜索。

1、-1- 分类号: 单位代码:11407 密 级: 学 号:20055306 北 方 民 族 大 学 硕士学位论文 开源技术 Struts、Spring、Hibernate 在 MIS 开发中的应用研究 An Application Research on Open Source Technologies Struts、Spring、Hibernate in MIS Development 学 位 申 请 人: 指导教师: 申请学位门类级 别: 工学硕士 专业名称: 计算机应用技术 研究方向: 信息系统工程 所在学院: 计算机科学与工程学院 论 文 完 成 日 期: 2008 年 5 月 北方民

2、族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -1- 独 创 性 声 明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽 我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得西北第二民族学院或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示 了谢意。 研究生签名: 时间: 2008年 5 月 20 日 关于论文使用授权的说明 本人完全了解西北第二民族学院有关保留、使用学位论文的规定,即:

3、学校有权保留 送交论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复制手 段保存、汇编学位论文。同意西北第二民族学院可以用不同方式在不同媒体上发表、传播 学位论文的全部或部分内容。 研究生签名: 时间:2008年 5 月 20 日 导师签名: 时间:2008 年 5 月 20 日 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -2- 摘摘 要要 随着 Internet 技术的飞速发展,基于 B/S 结构的服务器端应用程序得到了广泛的应用,实现 Web 应用的众多技术及其框架也层出不穷。传统的 EJB 解决方

4、案由于其复杂性无法解决其适用范围外的问题。 在开源领域,基于框架开发的技术非常活跃,尤其以 Struts,Spring 和 Hibernate 为代表。Struts 是一 种实现了 MVC 模式的 Web 应用框架,它全面减轻了构建多层 Web 应用的负担。Spring 是为解决企业 开发应用逻辑的复杂性而创立的一种框架。Hibernate 通过建立对象关系映射,解决了以前数据库开发 复杂和繁琐等问题。由于这些框架在企业开发中发挥的优势都集中在各自的范围之内,所以它们为企业 开发带来了便利,同时也存在不足。那么如何整合这三种独立的框架,发挥它们各自的优势,克服 J2EE 的复杂性,给软件开发者

5、提出了挑战。 本文针对上述问题,对Struts,Spring,Hibernate框架进行研究,具体分析各种框架在Web应用的不 同层次上所发挥的作用。提出整合三种框架的思路,并设计出一个适合企业Web应用开发的符合JavaEE 规范的整合框架。该框架基于Struts 的 MVC 设计模式,利用Struts的Controler实现整体流程控制,将 应用中的业务逻辑交给Spring管理,相关类用Spring的beans配置完成,并由Spring管理下层的数据访问 对象,由Hibernate负责数据的持久化。并对Spring,Hibernate和Struts整合后框架耦合性进行深入的分 析研究。最后

6、,以作者所开发的一个网站通用后台信息管理系统做为验证。开发结果表明,该应用系统 具有与平台无关性,可维护性、可扩展性、可移植性,同时能够使组件的可复用性得到提高。 关键词:Spring,Struts,Hibernate,整合,MVC 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -3- Abstract With rapid development of the internet technology, application programs on the server side, which is based B/S st

7、ructure, are used widely. A lot of technologies and their frameworks for Web Applications are emerging one by one. EJB as the traditional solution cannot resolve many problem for its complexity.In open source field ,technology base on development frameworks are flourish, especially Struts,Spring and

8、 Hibernate. struts is a Web application framework that has realized MVC mode. It can lighten the burden in constructing a multilayer Web application. Spring was created to solve the complicacy of application logic of enterprise development .Hibernate improve on the complex database development by us

9、ing Object Relational Mapping .All this frameworks take their advantage on their own field in enterprise development ,therefore they bring both convenience and insufficiency. So how to integrate the three independent frameworks,put their own advantages to the best use,overcome J2EE complexity,raise

10、a challenge to software developers. In order to resolve above these problem,a research work on Struts, Spring and Hibernate frameworks has been done. The roles of the 3 frameworks in different tiers of a Web application are analyzed in detail. A thought for integration of the 3 frameworks is introdu

11、ced. A new framework,that is suitable for development of enterprise Web application and conformable to J2EE specification, is designed. The framework is based on MVC design mode of Struts. Overall process control is implemented by using Struts Controller. The business logic of the application is man

12、aged by Spring. Relative classes through configuration of Spring Beans. Data Access Objects in underlying tiers are managed by Spring. The responsibility for Data persistence is taken by Hibernate. A intensive analysis and study on coupling performances of the integrated framework from Spring,Hibern

13、ate and Struts has been done finally,A general-purpose backend MIS for websites has been developed, that is used as a verification. The development result indicated that the application system has the attribute of platform independency, maintainability, extendibility, portability and meanwhile the m

14、odules reusability has been enhanced. Keyword:Spring,Struts,Hibernate,integration,MVC 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -4- 目目 录录 开源技术 STRUTS、SPRING、HIBERNATE 1 第 1 章 绪 论.6 1.1课题背景6 1.2本文的主要工作及意义9 1.2.1 课题研究的内容9 1.2.2 课题的意义10 1.3论文的组织结构10 第 2 章 开源技术应用现状11 2.1基本概念11 2.1.1 设计模式1

15、1 2.1.2 软件系统架构11 2.1.3 框架12 2.1.4 三者的关系12 2.2传统的 J2EE 解决方案及其缺陷 .11 2.3J2EE 的开源技术 13 第 3 章 WEB 解决方案分析研究15 3.1STRUTS框架.13 3.1.1 MVC 设计模式.14 3.1.2 Struts 实现 MVC 机制.16 3.2轻量级的 SPRING框架18 3.2.1 依赖注入(DI)和控制反转(IoC) .22 3.2.2 面向切面编程(AOP) .24 3.2.3Spring 解决方案选择24 3.3持久层框架 HIBERNATE.26 3.3.1Java 反射机制26 3.3.2

16、对象/关系映射机制26 3.3.3Hibernate 体系结构27 第 4 章 项目实例分析与设计30 4.1项目需求分析30 4.2总体架构设计32 4.2.1 业务逻辑层与数据持久层的通讯及其解耦方式33 4.2.2 表示层与业务逻辑层的衔接36 4.2.3 整合后的框架37 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -5- 4.3框架处理流程原理设计37 4.4系统模块设计39 4.4.1 持久层设计39 4.4.2 业务层设计43 4.4.3 表现层设计45 4.5数据库设计45 4.5.1 数据库表逻辑关系设计及

17、物理模型设计45 4.5.2 表结构设计46 第 5 章 架构应用的实现49 5.1开发环境49 5.2持久层的实现49 5.3业务逻辑层的实现53 5.4控制层的实现54 5.5视图层的实现55 5.6目录和包结构59 第 6 章 结束语62 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -6- 第第 1 章章 绪论绪论 1.1 课题背景 Web开发作为一个行业从诞生到现在,已经发展到了一个非常成熟的阶段,而且规模仍在不断扩大, 复杂度更加日渐升级。设计者和开发人员如何将新的设计建立在以往的工作基础上,如何复用所以往的 成功

18、案例,将大大的提高效率1。因此,人们越来越意识到软件技术复用的重要性,而且将注意力转移 到对设计的提炼,随着对JavaEE进一步研究,在研究结果中发现,软件开发过程中特定领域软件存在共 性部分,它是由一组紧密关联的classes(类)组成,强调类彼此的配合来完成某种可以重复运用的设计概 念。这些类之间以特定的方式合作,彼此不可或缺,研究人员将它提取出来,框架由此诞生2。在开源 社区中,框架更是百花齐放。 框架与建筑中的框架类似,是开发的最根本依据,一旦框架确定,项目实施路线就不容更改。同时 它比建筑学框架更便于使用,因为它已经固化了应用编程接口,提供了很多对象供开发人员直接调用。 由于软件架构

19、建立是一个复杂的过程,软件设计人员不可能对每个不同项目做出不同的架构设计。所以 构建一个易于维护,扩展性强,可移植,松耦合的Web解决方案3成为一个值得研究的课题。 本项目是导师冒东奎教授所承担的国家民委2004年委属高等院校重点科研项目“面向西部企业信息 系统整合的Web服务技术研究”(院内项目编号:M200409)的一个子项目。 1.2 本文的主要工作及意义 1.2.1 课题研究的内容 ( 1 ) 分析传统的 J2EE 技术,从以前流行的 EJB 的使用弊端推导出使用轻量级 J2EE 框架的优势。 (2)总结软件开发设计过程中的常用技术和方法,象什么是设计模式,什么是架构,什么是框架, 以

20、及它们之间联系和区别,以及它们在系统开发过程中的作用。 (3)对开源软件 Struts,Spring 和 Hibernate 的核心技术的研究,并认真分析 Struts MVC,Spring 的 IoC 和 AOP,中间层数据访问,以及 Hibernater 持久化数据原理及其方法。最后提 出了一种由表示层、控制层,业务逻辑层和持久层四层整合框架的 Web 开发解决方案 ,即:采用 Struts MVC 进行系统流程设计,Spring 依赖注入模式来解决业务逻辑层中代码之间依赖性过高的问题。 用 Hibernate 解决传统 JDBC 操作数据库所带来的弊端。同时对控制反转模式的几种实现类型进

21、行了分 析,从而为不同的程序实现提供了更多的解决方案。 作为这些研究成果的应用,本文利用 Eclipse 开发工具在 Tomcat 容器中实现了一个整合框架系统的 开发。这个系统中利用控制反转模式的思想通过设计接口和配置文件来进行动态的依赖注入,从而有效 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -7- 的对组件依赖性进行解耦。同时在程序中使用面向方面编程方法对模块中的横切关注点进行分解、封装、 重新组合,从而提高代码的重用性和扩展性。 1.2.2 课题的意义 (1)本文通过研究Struts,Spring,Hibernat

22、e这三种轻量级框架的核心技术,充分挖掘出它们的优势, 克服每个框架自身的局限性,最后将它们的优势进行整合,得到一个改进后的整合的轻量级框架。 (2)论文工作也在集成架构的基础上,开发一个实际项目,具体探讨如何将Struts的操作委托给 Spring;如何实现Struts和Spring之间的解耦;如何用依赖注入简化数据库的操作;如何实现AOP等。 (3)框架最重要的目标是提高西部企业MIS系统开发的竞争能力,包括降低成本、提高质量、改善客 户满意程度,控制进度等。 1.3 论文的组织结构 论文结构安排如下: 第 1 章绪论,介绍论文的研究背景、研究意义、技术应用现状、作者的工作及创新点。 第 2

23、 章传统J2EE解决方案分析,首先阐述设计模式,框架,架构之间的联系与区别以及分别在软 件分析与设计中所起的作用,然后分析了传统Web项目解决方案的技术思路及其优缺点,引出开源技术 框架。整合框架所需的Struts,Spring,Hibetnate框架的核心技术。为下一章多层框架的整合提供了理 论。 第 3 Web解决方案分析,主要研究整合框架所需的Struts,Spring,Hibetnate框架的核心技术及其 各框架的优势所在。为下一章多层框架的整合提供了理论。 第 4 章Web应用系统分析与设计,形成新的框架结构并验证其可用性。本章重点探讨Spring与 Struts和Hibernate

24、整合的实现方式,给出相应的技术细节。并以通用后台管理系统为例,对系统进行详 细的分析和设计。 第 5 章SSH整合架构应用的实现,按照自己的设计原理,对通用后台做技术实现,以论证自己设计 的可行性。 第 6 章结束语,概括总结作者在本文所做的工作及心得体会, 并对今后需进一步探索的工作提出 展望。 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -8- 第第 2 章章 传统传统 J2EE 解决方案分析解决方案分析 2.1 基本概念 本整合框架始终是基于一种设计模式的,而且设计模式与架构,框架存在着紧密联系,同时也存在着细 微区别

25、(特别是重用,以及所能够解决问题的层次,目标) 。只有真正清晰这些概念,才能够深入理解 这种基于 Struts MVC,Spring,Hibernate 整合框架的内涵。也才能够给本论文在软件开发中给出一个 正确定位层次(利用现有的框架技术重新整合设计) (参见后文的图 2.1 和图 2.2) 。 2.1.1 设计模式 Christopher Alexander 说过:“每一个模式描叙了一个我们周围重复发生的问题,以及该问题的解 决方案的核心。这样,你就能够一次又一次的使用该方案而不必做重复劳动7”。 一般而言,一个模式有四个基本要素: (1) 模式名称(Patern Name),一个助记名,

26、它用一两个词来描述模式的问题、解决方案和效果。 基于一个模式词汇表,开发者之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助人们思考, 便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是设计模式编目工作的难点之一。 (2) 问题 (Problem),描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果, 它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结 构。 (3) 解决方案 (Solution),描述了设计的组成部分,它们之间的相互关系及各自的职责和协作方 式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述

27、一个特定而具体的设计或 实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决问题。 (4) 效果 (Consequence),描述了模式应用的效果及使用模式应权衡的问题。软件效果大多关注 对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式 效果包括系统的灵活性、扩充性和可移植性的影响。 设计模式是对于重复出现的问题的一种可以重用的解决方法。从编程的角度来说,一个模式提供了 一系列特定的交互,这种交互可以应用于某些通用的目标。以解决某个众所周知的问题。好的设计模式 会在保证有效求解问题的基础上,突破它们能解决问题的规模。

28、可以知道,设计模式以重用为目标,解 决问题是属于对象设计级别的。 2.1.2 软件系统架构 软件架构(Software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设 计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件,同时设计各个抽象 组件之间的连接方式和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组 件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究

29、-9- 软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图 员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统 设计方案的基础。 软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它, 但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于 某些具体的特征。 在“软件构架简介”中,David Garlan 和 Mary Shaw 认为软件构架是有关如下问题的设计层次: “在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体

30、组织结 构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成; 定标与性能;备选设计的选择。8”但构架不仅是结构;IEEE Working Group on Architecture 把其定义 为“系统在其环境中的最高层概念”。构架还包括“符合”系统完整性、经济约束条件、审美需求和样式。 它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重 对外部的考虑9。 在 Rational Unified Process 中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结 构,这些重要构件通过接口与由更小部件与接口所组

31、成的构件进行交互。 以上关于系统架构可以总结为,软件系统的架构(Architecture)有两个要素: (1)它是一个软件系统从整体到部分的最高层次的划分。 一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统 本身结构的重要信息。详细地说,就是要包括架构元件(Architecture Component) 、联结器 (Connector) 、任务流(Task-flow) 。所谓架构元素,也就是组成系统的核心“砖瓦“,而联结器则描述 这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结 器完成某一项需求。 (2)建造一个系

32、统所作出的最高层次的、以后难以更改的,商业的和技术的决定。 在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造, 这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经 过非常慎重的研究和考察。 2.1.3 框架 框架是项目软件开发过程中提取特定领域软件的共性部分,它是由一组紧密关联的 classes(类)组成, 强调类彼此的配合来完成某种可以重复运用的设计概念。这些类之间以特定的方式合作,彼此不可或缺。 框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新项目的开发过程中代码不需 要从头编写,只需要在框架的基

33、础上进行一些开发和调整便可满足要求;对于开发过程而言,这样做会提 高软件的质量,降低成本,缩短开发时间,使开发越做越轻松,效益越做越好,形成一种良性循环。框 架是现成可用的应用系统,它只是一个半成品,需要后来的开发人员进行依托这个半成品来对具体功能 实现。所以,框架更侧重于设计,开发过程,或者可以说,框架通过一个所依托平台(半成品)提供的 服务而起作用。 2.1.4 三者的关系 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -10- 框架由一组紧密关联的 classes(类)组成,同时是一种特殊的半成品软件,它并不能提供完整无

34、缺的 解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半 成品;框架中的服务可以被最终应用直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。 而这些紧密相关联的类或者是对现实世界某个实体的抽象,或者设计模式所抽象出的类群(如图 2.1 所 示) 。 软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分 解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构 决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”, 而架构决策往往会体现在框架

35、之中(参见图 2.2) 。或许,人们常把架构和框架混为一谈的原因就在于此。 对象n 对象1 对象2 对象3 接口 图 2.1 类及类群与关系组合成框架 图 2.2 框架和架构的关系 从它们三者的关系可以看出,设计模式是对于重复出现的问题的一种可以重用的解决 方法,而一个模式提供了一系列特定的类交互。框架由一组紧密关联的 classes(类)组成。 而架构决策往往会体现在框架之中。清理概念上的误区后,我们接下来具体分析整合框架 所需的三种开源技术,即 Struts, Spring 和 Hibernate。 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 M

36、IS 开发中的应用研究 -11- 2.2 传统的 J2EE 解决方案及其缺陷 传统的解决方案给了我们这样的映像:J2EE 是一个非常好的企业应用设计规范,它采用了大量优秀 的设计思想。J2EE 设计的目标,就是让企业应用开发人员能够在一个规范的平台之上,不用考虑具体的 技术问题,专注于业务逻辑实现,就可以开发出性能高、稳定性好、可管理的较高水平的系统4。在传 统的 J2EE 架构体系中,其业务层主要是靠组件 EJB(Enterprise JavaBean)来实现的,而且 EJB 一直被 认为是 JavaEE 的核心组件,但它的诞生和为之服务的应用领域是大量数据,大量并发访问,要求极高的稳 定性

37、,安全性,以及应用分布式数据库,这样它就进入了重量级的范畴,EJB 是为了解决复杂问题而设计 的,它是为了复杂而复杂。不幸的很多企业级项目根本没有这样的要求,所以不利于大量实际 Web 应 用。典型的企业级 J2EE 架构主要由 JSPServletEJB 组成,在大型分布式系统往往采用这种方式,但 是在中小型企业 Web 应用中,采用 EJB 为中心的 J2EE 框架,主要有以下几个问题5: (1) J2EE 应用程序容易包含过量的“衔接”代码。. 从对许多代码的审校来看,我们总是发现很多代码毫无用处:JNDI 查询代码、传输对象、获取和 释放 JDBC 资源的 try/catch 代码块。

38、编写和维护这样的衔接代码无疑会占用大量的项目资源(包 括人力资源) 。而这些资源应该集中应用程序的业务领域。 (2) 许多 J2EE 应用程序不恰当的使用了分布式对象模型。 这是导致过度代码和代码重复的主要原因之一。在许多情况下,这也是概念性错误;内部分布式程 序比供出一地的应用程序更加复杂,而且通常性能也很差。当然,如果业务需求需要使用分布式结构, 那么需要实现一个分布式结构,并且接受由此导致的折衷。但是,没有充分理由,不应该这样做。 (3) EJB 组件模型过于复杂。 构思 EJB 是作为 J2EE 应用程序中实现业务逻辑时减低复杂性的一种方法;不过这一 目标从来没有取得成功。 (4)过度

39、使用 EJB EJB 本来是为了内部分布式的事务性程序设计的。但是多有的重要应用程序都是事务性的,而发布 性不应该成为基本组件模型的组成部分。 (5)事实上,很多“J2EE 设计模式”并非设计模式,而是受技术限制的解决方案 分布式的过度使用,以及诸如 EJB 之类的复杂 API 的使用,已经产生了许多不可靠的设计模式。因 此我们要批判性的进行分析,并且寻找更加简单有效的方法。 (6)J2EE 应用程序难以进行单元测试 J2EE API,尤其是 EJB 组件模型,在敏捷运动开始之前就已经定义好了,因此,它们的设计并没 有考虑单元测试的简易性。通过 API 和隐式规范,在应用程序服务器之外对基于

40、EJB 和许多其它 J2EE API 的应用程序进行测试,其困难程度超乎想象。然而,在应用程序服务器外部进行单元测试是非常重 要的,它可以获得测试的高覆盖率,也可以重现许多故障情形,例如数据库连接的丢失。同样,在开发 和维护中,这也能够保证测试的快速进行,使得等待重新部署的时间最小化。 (7)某些 J2EE 技术简直就是失败 这里,最典型的例子就是实体 Bean,它已经证明生产力损失惨重,而且面向对象的使用受到极大的 约束。 对待这些问题的传统方法就是等待工具的支持来弥补 J2EE 规范,这就意味着开发者无需纠缠于上 述的复杂性。不过这已经非常失败了。基于代码生成方法的工具并没有带来预期的好处

41、,反而显示出其 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -12- 自身的一些问题。在这种方法中,可能要生成所有那些冗长的 JNDI 查询,传输对象和 try/catch 快。 一般说来,经验表明框架(framework)比启用基于工具(tool-enabled)的代码生成要好。一个好 多框架通常在运行时通常比生成的代码要灵活得多;在框架中,可能有配置一个小代码块的行为,而不 是去改变许多生成的类。在很多情况下,要多次采用代码生成技术生成目标代码,这使得生产率大大减 低。构思精巧的框架还能够提供始终一致的抽象,而代码生成无

42、法成功地在整个项目生命期中隐藏签证 的复杂性。 基于框架的方法认识到这样一个事实,就是在 J2EE 拼图中丢失了一块,这一块就是:应用程序开 发人员的观点。许多 J2EE 所提供的东西,例如 JNDI,对应程序员的日常活动来说简直太底层了。J2EE 规范和 API 非常不错,但并没有给开发人员提供编程模型;否则,J2EE 规范和 API 会更成功!好的框 架补上这一块,并且给应用程序开发人员一个简单的抽象,而且没有牺牲这个平台的核心能力。 认识到框架对于成功的 J2EE 项目的重要性,许多开发人员和公司尝试编写它们自己的框架,获得 了不同程度的成功。在少数情况下,框架达到了它们预期的目的,大幅

43、度降低了费用,提高了生产率。 但是,大多数情形中,框架本身的开发和维护开销成了问题,而且框架的设计缺陷也显示出来。由于其 核心问题是相通的,使用单个的,广泛使用的框架比一个人闭门造车要好得多。无论一个组织有多么大, 它所获得的经验都无法与该产品在很多公司中被广泛使用所获得的经验相提并论。如果框架是公开源码 的,其额外的优势就是可能有人贡献新的,它们采用的特性和增强功能。因此,在某些特殊领域,诸如 Struts,spring 和 Hibernate 之类的通用框架日益取代了内部框架。 2.3 J2EE 的开源技术 目前, J2EE 应用确实很流行,从银行,证券系统,到企业信息化平台,甚至一些小公

44、司,都争相使用 J2EE 应用。几年前, J2EE 应用是很“贵族”的产品,那时候使用 EJB 作为 J2EE 的核心,开发成本高,部署成本也高, 开发者的学习曲线也陡峭。今天,轻量级 J2EE 应用的流行,让 J2EE 应用开始进入寻常百姓家。轻量级 J2EE 应用是对经典 J2EE 应用的简化,在保留经典 J2EE 应用的架构.良好的可扩展性.可维护性的基础上,简 化了 J2EE 应用的开发,降低了 J2EE 应用的部署成本.轻量级 J2EE 应用让 J2EE 平台以更快的速度占领电 子商务,电子政务等各种信息化平台市场。笔者从不否认对经典 J2EE 应用架构的喜爱,那种严谨的架构, 全方

45、位考虑的设计.优秀的分布式架构,无疑是一种编程的艺术.但它们太豪华了,以致于限制了它的市场占 有率。可以这样说:经典 J2EE 应用是面向开发者的,而轻量级 J2EE 应用则面向用户.优秀的开发者会感 慨并喜欢经典 J2EE 应用的设计,但市场则喜欢轻量级 J2EE 应用。轻量级 J2EE 应用模仿了经典 J2EE 应用 的架构,保留了经典 J2EE 应用的各种优点,降低了学习难度和开发,部署成本,是一种更实际的信息化平台 架构6。 J2EE 虽然是企业应用开发的成熟规范,但由于存在上述问题,实施难度实在太大。为此,三种开 源技术 Struts,Spring,Hibernate 分别从不同层面

46、对 J2EE 进行了实现和改进。图 2.3 画出的是 J2EE 规范的客户端,服务器端和后台数据库,上面标明了上述三种开源技术对其所作的实现和改进。其中 Struts 是 J2EE 在 Web 层的具体实现,它基于 MVC 模式,并推出了一系列 Action 类和一套自定义标 签库,将 Web 应用的业务逻辑和显示逻辑分离,简化了 Web 应用开发的难度;Spring 是一个全新的 轻量级的 J2EE 应用框架,它的创新技术 AOP(Aspect-Oriented Programming,面向切面的编程)克 服了 Java 对象之间缺少横向联系的问题。另一项创新技术 IoC(Inversion

47、 of Control ,控制反转)改 变了对象从容器中查找依赖的传统模式,让容器在应用对象初始化时不等被请求就将依赖传递给对象, 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -13- 从而促进了应用对象之间的松耦合。IoC 经纳入 Java EE 5 规范;Hibernate 相当于在业务逻辑层和数 据层之间增加了一个持久化层,通过对象关系/映射技术实现了 Java 应用对象到关系数据库表的自动 持久化,使应用程序能自动完各种数据库访问操作,从而提高了数据访问效率。这三种开源技术各有 所长,综合应用可构造出一个轻量级的整合

48、框架,能显著降低企业 MIS 开发的难度。 图 2.3 Struts,Spring,Hibernate 对 J2EE 的实现和改进 本章对软件研发过程中常用的模式、架构和框架进行了分析,对其中涉及到的基本概念,适用范 围及其作用进行了介绍,同时对传统 J2EE 解决方案进行了研究及并分析了其不足之处,提出了利用开 源框架 Struts,Spring 和 Hibernate 进行集成开发的设想。 北方民族大学硕士学位论文 开源技术 Struts,Spring,Hibernate 在 MIS 开发中的应用研究 -14- 第第 3 章章 Web 解决方案分析研究解决方案分析研究 3.1 Struts

49、 框架框架 Struts 是 Apache 软件基金下的 Jakarta 项目的一部分。Struts 框架的主要架构设计和开发者是 Craig R.McClanahan。经过长达五年的发展,Struts 已经逐渐成长为一个稳定、成熟的框架,并且占有 了 MVC 框架中最大的市场份额。但是 Struts 某些技术特性上已经落后于新兴的 MVC 框架。面对 Spring MVC、Webwork2 这些设计更精密,扩展性更强的框架,Struts 受到了前所未有的挑战。但站 在产品开发的角度而言,Struts 仍然是最稳妥的选择。 Struts 是基于 MVC 设计模式的 Web 应用框架,由一组相互协作的类(组件)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1