Struts2、Spring和Hibernate框架技术分析

时间:2022-10-25 06:02:20

Struts2、Spring和Hibernate框架技术分析

摘 要 随着科学技术的不断更新,企业对计算机软件的要求越来越高,不仅在功能方面提高了要求,而且在性能方面也有很高的要求,因此,推动了计算机编程技术的发展,目前Struts2、Spring和Hibernate三大开源框架已经成为软件系统开发应用的首选技术,大大的提高了项目的开发效率、可扩展性和可维护性。文章阐述了Struts2框架工作原理、Hibernate框架的作用及其对象状态以及Spring框架的模块。

关键词 Struts2框架;Spring框架;Hibernate框架

中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2013)20-0049-01

1 Struts2、Spring和Hibernate三大框架简介

框架是JavaEE开发领域炙手可热的一个名词。目前技术领域存在很多种框架技术,能够有效的解决JavaEE应用开发中很多通用的问题,其中Struts2、Hibernate以及Spring是目前最主流的、使用最广泛的开源框架,每个框架专注于解决不同的问题,具有很强的代表性。其中,Struts2框架是一个MVC框架;Hibernate框架是一个ORM框架;而Spring框架是一个综合性的框架,是一个轻量级的解决方案。这三个框架往往各司其职,在应用中的不同层面发挥其作用。

2 Struts2框架工作原理

Struts2框架已经盛行多年,然而Struts2与Struts1之间并不是扩展和升级的关系。Struts2是著名框架WebWork的扩展,WebWork是一个很优秀的MVC框架,但是由于是一个新兴的框架,在一段时间内没有被广泛使用。后来,Struts和WebWork社区决定将二者合并,于是推出了Struts2框架。Struts2框架兼具Struts1和WebWork的优点,从而得到了广泛的使用。

Struts2的工作原理比较复杂:

1)客户端向服务器端提交请求,容器初始化HttpServletRequest请求对象。

2)请求对象被一系列的Servlet过滤器过滤。Struts2中的过滤器有3种:①ActionContextCleanUp过滤器,是一个可选的过滤器,主要用来集成其他框架;②其他插件的核心过滤器,譬如:SiteMesh插件的过滤器;③FilterDispatcher过滤器,是Struts2 API中提供的过滤器,是必选的过滤器。

3)FilterDispatcher过滤器调用ActionMapper,决定该请求是否需要调用某个Action。

4)如果请求需要调用某个Action,ActionMapper将通知FilterDispatcher过滤器把请求的处理交给ActionProxy来处理。

5)ActionProxy通过Configuration Manager解析框架的配置文件struts.xml,找到需要调用的Action类。

6)ActionProxy将创建一个ActionInvocation实例。

7)ActionInvocation实例使用命令模式回调Action中的execute方法,Action调用业务逻辑类完成业务逻辑。在调用Action的前后,将调用该Action涉及的相关拦截器。

8)Action执行完毕后,ActionInvocation根据struts.xml中的配置找到对应的返回结果,返回给JSP、FreeMarker等模版文件。

3 Hibernate框架的作用及其对象状态

Hibernate是一个ORM(Object-Relational Mapping)框架,主要作用是简化应用的数据持久层编程,不需要编程人员花大量的时间编写SQL和JDBC代码。可见,Hibernate框架位于应用层和数据库之间,解决数据持久层编程。Hibernate框架主要包括持久化对象(persistent Object):是Hibernate框架中非常重要的组成部分,简称为PO。PO用来映射数据库中的记录,可以通过修改PO来修改数据库记录;包括Hibernate属性文件(hibernate.properties):使用Hibernate进行数据持久层编程,相关的数据库访问信息需要在Hibernate属性文件中配置,譬如,数据库驱动类、连接串、用户名、密码等,也可以使用名字为hibernate.cfg.xml的xml文件配置属性;还包括Hibernate映射文件(XML Mapping):持久化对象映射数据库中的记录,其映射关系依靠Hibernate框架的映射文件配置,映射文件是XML文件,往往使用*.hbm.xml形式命名,其中*是持久化对象的类名。

Hibernate框架是一个完整的ORM框架,以对象为基础,通过操作对象,进一步操作对象关联的数据库记录。持久化类与数据表对应,持久化的对象则映射数据库记录。持久化的对象有三种状态:瞬时状态,当通过new操作符实例化了一个对象,而这个对象并没有被Session对象操作,也就是该对象没有与一个Session对象关联时,那么这个对象就称为瞬时状态对象,瞬时状态的对象与普通对象没有区别,没有与数据库的记录有映射关系;持久状态,如果一个对象与某一个Session对象关联,例如被Session对象刚加载的、刚保存的、刚更新的,那么该对象就称为持久状态对象。持久状态的对象与数据库中一条数据相对应,并拥有持久化标识。当持久状态的对象有改变时,当事务提交后,Hibernate会自动检测到对象的变化,并持久化到数据库中;脱管状态,当与持久状态对象关联的Session关闭后,该对象就变成脱管状态。脱管状态的对象引用依然有效,可以继续使用,当脱管状态的对象再一次与某个Session关联后,脱管状态对象将转变为持久状态,脱管期间进行的修改将被持久化到数据库中。

4 Spring框架的模块

企业级应用开发总是涉及方方面面,Spring框架是一个轻量级的解决方案,致力于创建“快装式企业应用”。Spring框架包括一系列的特性,被组织在七个模块中,可以把Spring框架看成一个标准的开发组件。Spring框架被设计成无侵入式的方式,即企业应用可以根据需要选择Spring框架中必要的组件,而忽略其他部分,以做到最小范围依赖的Spring框架。

Spring框架包含了7个模块,每个模块对于解决不同的问题。Spring Core模块:是最核心的模块,封装了Spring框架核心包,主要提供了Spring IoC(控制反转)容器。IoC是Spring框架的基础,所有其他特性都是基于IoC之上;Spring Context模块:提供了对Spring中对象的框架式访问方式,并包括国际化、事件传播等特性;Spring DAO模块:提供了JDBC的抽象层,是集成JDBC的封装包,能够避免JDBC繁琐冗长代码,同时还提供了声明性事务管理特性;Spring ORM模块:提供了集成常用ORM框架的封装包,包括JDO、JPA、Hibernate、iBatis等。使用该模块可以更为便捷的使用ORM框架,而且还可以同时使用Spring的其他特性,如声明性事务等;Spring Web模块:提供了Web开发的一些基础特性,如上传文件等,同时提供了与Web框架集成的封装包,如集成Struts2框架;Spring AOP模块:AOP(面向切面编程)是Spring中除了IoC外的另外一个核心概念,该模块提供了符合AOP联盟规范的AOP实现,可以降低应用的耦合性,提高扩展性;Spring MVC模块:该模块提供了一个MVC框架。Spring框架包含了一系列的特性,可以根据应用的具体需要来选择使用部分组件。Spring框架可以在任何类型的应用中使用,譬如:桌面应用、Web应用、C/S应用等。

参考文献

[1]柯常钦,史毓达.基于SSH框架的Web应用系统开发研究[J].湖北第二师范学院学报,2010(08):102-105.

[2]符钰.基于Struts2+Hibernate3+Spring3框架的Web[J].金华职业技术学院学报,2013(06):61-64.

[3]武宝珠,梁声灼,牛德雄.基于Struts2+Spring+Hibernate架构构建Web应用系统[J].计算机与现代化,2009(08):43-46.

[4]李雷孝,谢芳,刘晓军,赵丽华,李昆.SSH整合框架的研究与应用[J].内蒙古工业大学学报,2012(02):40-44.

上一篇:PLC在低频时变信号处理中的应用 下一篇:连退炉薄规格产品张力控制技术的应用