文档库 最新最全的文档下载
当前位置:文档库 › 04 文献综述

04 文献综述

文献综述

基于IoC和AOP的Spring框架技术

(宁波大红鹰学院信息工程学院10计科4班胡梦瑶)

一. 引言

SSH 是 Struts+Spring+Hibernate的集成框架的简称,是目前较流行的一种Web

应用程序开源框架。而其中Spring是由Rod Johnson创建。目的是为了解决企业应用

开发的复杂性。Spring使用基本的JavaBean来完成以前只能有EJB[1]完成的事情。

Spring主要专注于如何利用类、对象和服务去组成一个企业级应用,通过规范的方

式,将各种不同的组件整合成一个完整的系统。Spring中使用了很多被实践证明的最佳

实践和设计模式。它基于依赖注入和面向方面技术,大大地降低了应用开发的难度与复

杂度,提高了开发的速度,为企业级应用提供了一个有效的轻量级解决方案。

叶加青提出Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦

合的角度而言,任何Java应用都可以从Spring中受益[2]。而Spring是一个轻型的IoC

和AOP的容器框架,且Spring与其他的框架也是有一定的联系。

二. 主题内容

Spring能支持多种主流Web框架、JDBC及多种主流ORM中间件,能简化企业级系

统开发,具有设计配置简单、可测试、松耦合、可扩展性强等特征[3],Spring提倡使用

控制反转来解决依赖耦合,实现应用程序的松散耦合[4]。

1)轻量级

轻量级和重量级主要是以启动程序需要的资源来决定的。Spring 的核心包在文件

容量上只有不到1MB 的大小,而使用Spring 核心包所需要的资源负担也是很小的,甚

至可以在小型设备中使用Spring 的核心包。像王美琴也在《基于Struts,Spring和

Hibernate的J2EE框架整合方法探讨》中提出:轻量级是指从大小与开销两方面而言

Spring都是轻量的,完整的Spring框架可以在一个大小只有1MB多的JAR文件中发布,

并且Spring所需的处理开销也是微不足道的[5]。

2)IoC和Spring

IoC是“Inversion of Control”的缩写,意思是控制反转,又称为“依赖注入”。Spring通过控制反转(IoC)的技术促进了松耦合,运用IoC会使一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建。容器的职责包括:实例化、定位、配置应用程序中的对象、建立这些对象间的业务逻辑依赖。通熟点就是用来管理bean的产生装配和销毁等

3)AOP和Spring

通过Spring提供的AOP功能,方便进行面向对象的编程,许多不容易用传统面向

对象编程实现的功能可以通过AOP轻松应付。Spring AOP可以为基于Spring的应用系统提供事务等管理服务,通过使用AOP,不用依赖EJB,也可以在应用系统中使用声明式的事务管理策略,从而提高开发效率和质量。可以将业务逻辑从系统服务中抽取出来,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发[6]。

Spring AOP的核心技术是JDK动态代理技术。以动态代理技术为基础,设计出了一系列AOP的横切实现,比如前置通知、返回通知、异常通知等。同时,Spring AOP还提供了一系列的Pointcut来匹配切入点,可以使用现有的切入点来设计横切面,也可以扩展相关的Pointcut方法来实现切入需求。

3)Spring和Struts2

Spring和Struts2的整合。需要创建ApplicationContext实例,Struts2与Spring 的集成要用到Spring插件包struts2-spring-plugin-x-x-x.jar,这个包是同Struts2一起发布的。Spring插件是通过覆盖(override)Struts2的ObjectFactory来增强核心框架对象的创建。当创建一个对象的时候,它会用Struts2配置文件中的class属性去和Spring配置文件中的id属性进行关联,如果能找到,则由Spring创建,否则由Struts 2框架自身创建,然后由Spring来装配。

4)Spring和Hibernate

Spring和Hibernate的整合,在Spring与Hibernate的连接中,一般是将SessionFactor底层的DataSource使用Spring的IoC进行注入,之后再注入SessionFactory到有依赖关系的对象中,这样可以达到很好的解耦性[7]。利用Spring, Hibernate来对数据进行操作,主要包括持久化类,Spring配置文件的编写,以及Hibernate映射文件的编写,然后通过持久化类和映射文件在对应数据库中自动创建相应表单,最后编写控制类函数实现对数据库的操作[8]。

三. 总结

Struts,Spring以及Hibernate技术各有所长,有机的将三者结合,可以构造出一个轻量的J2EE框架,能够显著的降低网络应用的开发、部署难度[9]。

Spring提供了一个有效的编码模式使其在任何环境下都是可靠的。很多简单的web 应用不需运行在昂贵的、高档的应用服务器上,反而在像Tomcat这样的web容器中运行的更好。这就提醒我们不是所有的应用都是运行在服务器端的。Spring就提供了这样一个编码模式,使程序代码与运行环境想隔离,减少其对运行的上下文的依赖[10]。

Web应用框架的发展趋势是低耦性,而Spring框架的出现起到了很大的作用。传统的技术在现在用起来暴露出的问题很多,Spring的出现及时的解决了轻量级的入侵问题。由于Spring框架本身就是一个各种技术的一个完美的应用。

Spring框架能通过最简单的方法来解决大多数问题,同时也由于Spring框架原本在最初设计的时候就考虑到它与其他框架的集成。所以在Spring框架中能够非常简单的与其他框架集成,形成高效低耦合的代码。这样可以在很大程度上实现功能的完善,

而这对开发人员来说有很大的价值和吸引力的地方。

Spring框架虽然在Java企业级应用开发中有着很大的优势,但是,还有待进一步完善:

(1)当Web应用系统太大时,需要集群,做分布式架构时,Spring框架现在对分布式事物的支持还不够完善,这个方向有待进一步完善。

(2)虽然Spring的AOP解决了一些面向对象的编程的问题,但是Spring 的AOP只实现了在简单的连接点;如果应用系统需要使用AOP的更多高级特性,就需要更全面、更有效的AOP解决方案。

(3)在系统实现过程中对于表示层框架Struts,持久层框架Hibernate的研究还不是很充分。

【参考文献】

[1]Mare Loy. Java swing[M].America:Oreilly,2002:136-210.

[2]叶加青.Spring框架技术的应用[J].Computer Era,2009(10):54-58.

[3]肖茂兵.JavaEE应用技术框架选项应用技术[J],2006(8):78-81.

[4]C Walls,R Breidenbach. Spring in Action[M].Manning,2006,121-152.

[5]王美琴.基于Struts,Spring和Hibernate的J2EE框架整合方法探讨[J].电脑知识与技术,2011,7(24):5911-65913.

[6]杨刚.基于Struts+Hibernate+Spring框架的信息管理系统的研究和实现[D].武汉:武汉理工大学,2010.

[7]范新灿,赵明. 基于Struts+Hibernate+Spring的轻量级架构开发应用研究[J].现代计算机,2011

[8]张飞.基于Struts与Hibernate的数据库访问技术研究[J].计算机工程与设计,2009,30(7):1668-1670.

[9]万东.基于Struts+Hibernate+Spring的轻量级J2EE框架[J].现代电子技术,2011,34(16):39-41.

[10]王雪. 基于Struts+Hibernate+Spring框架的企业培训管理系统的设计与实现[D].长春:吉林大学,2012.

相关文档