论文部分内容阅读
[摘要]本文提出了基于轻量级Web 框架——Struts + Spring + Hibernate的系统结构, 介绍了Struts 的MVC结构、Spring 的基本组成和结构以及Hibernate的基本对象,并将三种框架技术整合起来应用到系统中, 给出一个具体的实例配置,前端采用Struts 的MVC框架,中间层采用Spring,后台采用Hibernate,提高了项目代码的可重用性和开发效率。
[关键词]MVC STRUTS SPRING HIBERNATE J2EE
面对日益复杂的软件规模,人们深刻地认识到,选择良好的开发框架对保证系统的成功至关重要。成熟的框架会减少重复开发工作量、缩短开发时间、降低开发成本, 增强程序的维护型和可扩展性。J2EE多层分布式应用体系结构的出现促进了软件业的巨大改变,但J2EE庞大的体系显得有些臃肿,因此J2EE轻量级架构——Struts +Spring+Hibernate目前已经成为开发Web应用的主流。
一、开源框架Struts 、Spring 、Hibernate
1.Web 框架Struts。Struts 框架是由Apache 软件组织提供的一项开源项目,一个基于模型(Model)——视图(View)——控制器(Controller)(MVC)模式的应用架构的开源框架。框架分为三部分: 模型、视窗和控制器。
模型:从概念上模型分为两类:系统的内部状态和改变系统状态的动作。模型是所有的商业逻辑代码片段所在。一个模型能为多个视图提供数据,因此提高了应用的可重用性。
视窗:与控制器Servlet配合工作的一整套JSP定制标签库构成,利用它可以快速建立应用系统的界面。
控制器: 控制器可以理解为模型与视图间沟通的桥梁,它可以分派用户的请求并选择适当的视图用于显示。其本质上是一个Servlet,将客户端请求转发到相应的Action类。
MVC模式的使用,减弱了业务逻辑接口和数据接口之间的耦合,使视图层更富于变化。
2.Spring框架。Spring是一个开源项目,为简化企业级系统开发而诞生的轻量级解决方案,可建立“快装式企业应用”。在此基础上,还提供了包括声明式事务处理,RMI或Web Services远程访问业务逻辑,以及可以多种方法进行的持久化数据库的解决方案。
Spring可以看作是一个标准开发组件,根据自己的需要,只取用它的部分组件使用而无须涉及其他。Spring的框架基础是JavaBean属性的Inversion of Control 容器。
3.Hibernate框架。Hibernate是一个免费的开源Java包,一个面向Java 环境的对象或关系数据库映射工具。它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,更不必考虑如何把它们从神秘的数据库表中取出或放回。
工作方式:它不会强迫您修改对象的行为方式,也不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。
二、基于SSH的J2EE架构的应用
开发实践中可将这三种框架整合起来应用到我们的Web项目中不同层,制作一个员工信息管理系统。
1.以管理信息系统中用户日志管理的登录为例, 简单介绍如何在配置文件中将Struts、Spring 和Hibernate 三者有机地结合起来。
Spring 整合Struts的配置的web.xml,在WEB服务器起动后加载所有的配置,其配置如下所示:
contextConfigLocation
/WEB-INF/config/spring/applicationContext*.xml
com.framework.spring.web.context.ContextLoaderListener
action
org.apache.struts.action.ActionServlet
/WEB-INF/config/struts/struts-config.xml
action *.do
在Struts 的配置文件中有相应的代码:
type=”com.examsystem.examdb.web.LoginAndLogoutAction”>
以上两段代码完成用户登录动作, 下面由相应的action 来处理具体的业务逻辑, 如从数据库中提取数据来验证用户的合法性等。对数据库的操作由Hibernate 来完成,Spring 配置文件中有如下语句:
相应的Employee.hbm.xml 文件内容如下:
2.架构的结构流程(如图所示)
图构架的结构
WEB服务器启动后,将加载WEB应用,并把STRUTS和SPRING同时也加载到SERVLET容器中,当有一客户请求到达服务器时,ACTION SERVLET将查找ACTION匹配请求的ACTION,然后委托到指定的ACTION。在该ACTION中,调用Business service方法来处理相应的业务逻辑。这一过程中,Hibernate处在DAO层,用于处理所有与数据库的操作。这里也体现了三层架构:第一层,表现层(STRUTS),它有一个总的控制器ActionServlet,从客户端传来的动作都会由这个控制来处理,或者转发到真正的ACTION那里来处理,当这个请求处理完之后,再返回到ActionServlet,找到要呈现给客户端的页面;第二层,业务逻辑层,处理相关的商业逻辑,并且使他们的处理都处在同一个事务中,这样当有某一个操作出现错误时,保证数据库能恢复到最初状态,从而保证数据的完整性;第三层,持久层(Hibernate 和 DB数据库),Hibernate把最原始的JDBC封装了起来,Hibernate的好处在于我们不用直接写SQL语句,可用对象或HSQL来取得所需数据。
三、结束语
Struts+Spring+Hibernate 是目前国内外众多知名软件企业最主流的应用技术, 也是J2EE 未来发展的趋势, 在项目开发实践中应用该构架,降低了程序的复杂度, 易于调试, 减轻了程序员的负担, 具有很强的扩展性,该结合框架一定具有美好的前景。
参考文献:
[1]Hibernate 官方网站:http://www.hibernate.org.
[2]Struts 官方网站:http://Jakarta.apache.org/struts/index.html
[3]Spring 网站:http://www.springframework.org/
[4]黄烟波张红宇:基于Struts和Hibernate的J2EE构架 计算机时代.2004年第10期
[5]胡晓丹魏长军:基于Struts + Spring + Hibernate 架构的能源管理系统的研究.计算机与现代化.2006年第12期
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
[关键词]MVC STRUTS SPRING HIBERNATE J2EE
面对日益复杂的软件规模,人们深刻地认识到,选择良好的开发框架对保证系统的成功至关重要。成熟的框架会减少重复开发工作量、缩短开发时间、降低开发成本, 增强程序的维护型和可扩展性。J2EE多层分布式应用体系结构的出现促进了软件业的巨大改变,但J2EE庞大的体系显得有些臃肿,因此J2EE轻量级架构——Struts +Spring+Hibernate目前已经成为开发Web应用的主流。
一、开源框架Struts 、Spring 、Hibernate
1.Web 框架Struts。Struts 框架是由Apache 软件组织提供的一项开源项目,一个基于模型(Model)——视图(View)——控制器(Controller)(MVC)模式的应用架构的开源框架。框架分为三部分: 模型、视窗和控制器。
模型:从概念上模型分为两类:系统的内部状态和改变系统状态的动作。模型是所有的商业逻辑代码片段所在。一个模型能为多个视图提供数据,因此提高了应用的可重用性。
视窗:与控制器Servlet配合工作的一整套JSP定制标签库构成,利用它可以快速建立应用系统的界面。
控制器: 控制器可以理解为模型与视图间沟通的桥梁,它可以分派用户的请求并选择适当的视图用于显示。其本质上是一个Servlet,将客户端请求转发到相应的Action类。
MVC模式的使用,减弱了业务逻辑接口和数据接口之间的耦合,使视图层更富于变化。
2.Spring框架。Spring是一个开源项目,为简化企业级系统开发而诞生的轻量级解决方案,可建立“快装式企业应用”。在此基础上,还提供了包括声明式事务处理,RMI或Web Services远程访问业务逻辑,以及可以多种方法进行的持久化数据库的解决方案。
Spring可以看作是一个标准开发组件,根据自己的需要,只取用它的部分组件使用而无须涉及其他。Spring的框架基础是JavaBean属性的Inversion of Control 容器。
3.Hibernate框架。Hibernate是一个免费的开源Java包,一个面向Java 环境的对象或关系数据库映射工具。它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,更不必考虑如何把它们从神秘的数据库表中取出或放回。
工作方式:它不会强迫您修改对象的行为方式,也不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。
二、基于SSH的J2EE架构的应用
开发实践中可将这三种框架整合起来应用到我们的Web项目中不同层,制作一个员工信息管理系统。
1.以管理信息系统中用户日志管理的登录为例, 简单介绍如何在配置文件中将Struts、Spring 和Hibernate 三者有机地结合起来。
Spring 整合Struts的配置的web.xml,在WEB服务器起动后加载所有的配置,其配置如下所示:
在Struts 的配置文件中有相应的代码:
以上两段代码完成用户登录动作, 下面由相应的action 来处理具体的业务逻辑, 如从数据库中提取数据来验证用户的合法性等。对数据库的操作由Hibernate 来完成,Spring 配置文件中有如下语句:
相应的Employee.hbm.xml 文件内容如下:
2.架构的结构流程(如图所示)
图构架的结构
WEB服务器启动后,将加载WEB应用,并把STRUTS和SPRING同时也加载到SERVLET容器中,当有一客户请求到达服务器时,ACTION SERVLET将查找ACTION匹配请求的ACTION,然后委托到指定的ACTION。在该ACTION中,调用Business service方法来处理相应的业务逻辑。这一过程中,Hibernate处在DAO层,用于处理所有与数据库的操作。这里也体现了三层架构:第一层,表现层(STRUTS),它有一个总的控制器ActionServlet,从客户端传来的动作都会由这个控制来处理,或者转发到真正的ACTION那里来处理,当这个请求处理完之后,再返回到ActionServlet,找到要呈现给客户端的页面;第二层,业务逻辑层,处理相关的商业逻辑,并且使他们的处理都处在同一个事务中,这样当有某一个操作出现错误时,保证数据库能恢复到最初状态,从而保证数据的完整性;第三层,持久层(Hibernate 和 DB数据库),Hibernate把最原始的JDBC封装了起来,Hibernate的好处在于我们不用直接写SQL语句,可用对象或HSQL来取得所需数据。
三、结束语
Struts+Spring+Hibernate 是目前国内外众多知名软件企业最主流的应用技术, 也是J2EE 未来发展的趋势, 在项目开发实践中应用该构架,降低了程序的复杂度, 易于调试, 减轻了程序员的负担, 具有很强的扩展性,该结合框架一定具有美好的前景。
参考文献:
[1]Hibernate 官方网站:http://www.hibernate.org.
[2]Struts 官方网站:http://Jakarta.apache.org/struts/index.html
[3]Spring 网站:http://www.springframework.org/
[4]黄烟波张红宇:基于Struts和Hibernate的J2EE构架 计算机时代.2004年第10期
[5]胡晓丹魏长军:基于Struts + Spring + Hibernate 架构的能源管理系统的研究.计算机与现代化.2006年第12期
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。