境。
它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行,如Servlet组件在Servlet容器上运行,EJB(Enterprise Java Beans)组件在EJB容器上运行,容器间通过相关的协议进行通讯,实现组件间的相互调用。遵从这个规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速。
2.1 Hibernate框架概述
2.2.1 什么是ORM
ORM(Object/Relation Mapping,对象-关系映射)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,可以减少重复的数据访问层的代码,减少系统的耦合,便于维护。ORM是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法中对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。ORM系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。
2.2.2 Hibernate框架介绍
Hibernate框架是一个数据持久层框架,是一种实现ORM的工具,它对JDBC(Java Data Base Connectivity,Java数据库连接)进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库。
Hibernate框架用XML(Extensible Markup Language, 可扩展标记语言)配置文件的形式来定义Java对象和数据表之间的映射关系,透明的提供对象与关系数据库的映射,以统一的接口方式支持多种数据库。Hibernate对JDBC的优秀封装,通过使用HQL(Hibernate Query Language,Hibernate查询语言)完成Java对象和关系型数据库之间的转换[6],在很大程度上简化了对数据的查询,加快了开发的效率。而且Hibernate中提供了一个简单而直观的API(Application Programming Interface,应用程序编程接口),用于对数据库所表示的对象执行查询。避免了访问数据库时大量代码的出现。使得开发人员可以从通常的数据持久化编程事务解放出来。
虽然Hibernate有诸多好处,但是Hibernate的劣势也是很明显的,只提供模型层的支持,但是却无法实现业务流程控制,这也使得系统不能单一的基于Hibernate框架开发。故而,系统选择Hibernate这个成熟的ORM框架进行持久层开发,实现对象与数据库关系之间的交互,而在其他层次使用其他框架与之整合。
2.3 Spring框架概述
2.3.1 IoC和AOP
IoC(Inversion of Control,控制反转)又称为DI(Dependence Injection,依赖注入)。IoC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。其原理是基于OO设计原则的The Hollywood Principle:Don't call us, we'll call you(好莱坞理论:别找我,我会来找你的)。也就是说,所有的组件都是被动的,所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。
AOP(Aspect Oriented Programming,面向方面的编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善[7]。OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。而AOP技术则恰恰相反,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块。简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。AOP 的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。正如Avanade公司的高级方案构架师Adam Magee所说,AOP的核心思想就是"将应用程序中的商业逻辑同对其提供支持的通用服务进行分离。"
2.3.2 Spring框架介绍
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring是一个轻量级的IoC和AOP的容器框架[8]。
Spring的核心就是它的轻量级IoC容器的功能。通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合。Spring使开发人员不必再为属性文件解析等一些很底层的需求编写代码。
Spring提供了面向切面编程的丰富支持,把应用的业务逻辑与系统级服务(例如审计和事务管理)进行分离,使得应用对象只需要实现它们应该做的--完成业务逻辑--仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
虽然Spring是一个优秀的松散耦合框架,而且Spring提供了对各种优秀框架的良好支持,但是在MVC(Model-View-Controller,模型-视图-控制器)模式上,却并未被广泛使用,参考文献也较少,不利于开发。故而,系统利用Spring良好的AOP和对Hibernate的支持,负责Hibernate的事务代理;利用对IoC支持,为各层提供依赖注入,松散耦合。而把MVC功能交给其他框架,已达到更快的开发效率和更高的软件质量。
2.4 Struts框架概述
2.4.1 MVC模式
MVC设计模式把一个应用流程划分成模型层、视图层、控制层这么三个层。每个层次执行各自的职责。
视图(View)层:该层是与用户交互的界面,仅负责视图上数据的采集和处理,以及接受用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。
模型(Model)层:该层负责业务流程/状态的处理以及业务规则的制定。业务模型的设计可以说是MVC最主要的核心。模型接受视图请求的数据,并返回最终的处理结果。
控制器(Controller):该层负责从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。但是控制层并不做任何的数据处理。
2.4.2 Struts框架介绍
Struts是Apache软件组织负责开发的一个开源框架[9],实质上就是在JSP的基础上实现的一个MVC框架。模型由实现业务逻辑的Java Bean或者EJB组件构成,从而与界面相独立。控制器由ActionServlet和Action来实现,用于处理用户与软件的交互操作,控制模型和视图之间的数据传递,更新模型状态。视图由一组JSP文件构成,视图还用于捕获用户所传递的数据,通过控制器传递给模型。
Struts是一款成熟的面向MVC建模的框架,可以把显示层同业务逻辑完全独立开来,使业务逻辑开发人员同显示层开发人员可以并行开发,加快开发速度。然而Struts框架的劣势也是极为明显的,由于没有对业务逻辑层提供很好的支持,如数据库的事务操作等等。所以单独使用Struts情况下,使得对于业务逻辑的开发较为复杂。结合Struts的优缺点,系统提出了利用Struts成熟的MVC架构提供业务的流程控制的方案。
2.5 DWR框架概述
2.5.1 Ajax技术
在传统的Web应用通过提交表单时就向Web服务器发送一个请求。服务器接收并处理表单,然后送回一个新的网页,由于前后两个页面中的大部分HTML码往往是相同的,而且应用的回应时间取决于服务器的回应时间,这就会使用户得到回应的速度较慢。
与此不同,Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML),仅向服务器发送并取回必需的数据,并在客户端采用JavaScript处理来自服务器的回
上一篇:
论文基于J2EE_Struts的教学管理信息系统(word文档)
下一篇:
初中团支部学期工作总结