在计算机科学领域,随着interne的广泛应用和网络技术的发展,基于Web的应用系统已成为趋势。而在这些应用系统中,有一大部分是种基于J2EE的多层Web应用系统。在这种企业级J2EE多层架构体系中,目前在软件开发市场最主流的框架就是SSH即使用Struts、Spring、Hibernate三种开发技术对应用系统进行整合。
1 SSH框架概述
1.1 综述
SSH是目前软件开发Java平台企业级应用中最主流的框架,它是由三种主流框架整合而成,即由Struts+Spring+Hibernate三条梁柱支撑起来的Web应用系统。在生产企业中,小至一般日常信息管理系统,大至省级电信管理平台,都可以见到SSH的身影。
在J2EE三层架构体系中,如图1:客户端、服务器端、持久化层,三个层面构成完整的Web应用平台。一般来说由浏览器实现客户端的功能,客户端通过http、https或其它协议发送请求至服务器,由控制器分析判断客户端请求的类型,再根据分析结果调用相应的模型即模块来处理请求,再根据处理结果把相应的数据用JDBC的方式持久化到数据库层,最后再根据处理结果,由控制器调相应的视图响应客户端。
在SSH框架的三层架构体系中,控制器的角色是由Struts来担当,而模型层是通过Spring来实现系统功能,Hibernate则充当JDBC的角色,负责将业务逻辑数据持久化到数据库层。
1.2 Struts框架
MVC是系统架构中非常普遍的设计模式,由三大部分组成:Model—View—Controller,即由模型、视图、控制器三部分交互而成。在传统的MVC模式中,Controller一般是由Servlet实现请求分发的角色,由JavaBean实现Model层的功能,JSP实现View视图的响应。当三层架构体系中,用户请求从浏览器端发送服务器端时,请求被分发到Controller,由控制器进行分析判断,并根据分析结果调用相应的Model层来处理客户端的请求,最后根据处理结果,调用相应的View层来响应客户端的请求。
Struts是一种基于MVC模式的框架,非常广泛地应用于各种企业级应用系统中。其主要由配制文件、ActionForm及Action类构成。通过配制文件配制请求对应的ActionForm及Action类,ActionForm存储请求对应的属性值,Action类处理请求的转发。
容器启动时就会自动对Struts框架相关属性进行初始化,客户端发送请求过来时,先读取配制文件的相关信息,再根据相关信息把请求依次传递给相关的ActionForm、Action类,最后根据处理结果及配制文件的相关信息调相应的视图响应请求。
1.3 Spring框架
Spring是一种轻量级组件,运行时加载,引入Spring框架就可以使我们在编程过程中,依赖运行时注入而不是编程实现,从而进一步降低了高层模块与低层模块的之间的耦合性,实现模块在功能层面的重用。Spring有两种模式,分别为IoC及AOP。
IoC是Spring最重要的核心概念,也叫控制反转,也就是我们常说的依赖注入。使用IoC模式,Spring容器会自动注入配置文件中设定的对象,而不必在程序代码中维护对象的依赖关系。
AOP也叫代理模式,是Spring框架的重要组成部分,使用AOP模式能方便地就应用系统加入业务逻辑以外的横切关注点,如:日志、安全、事务等服务。
1.4 Hibernate框架
Hibernate是ORM组件,其底层封闭了JDBC技术来连接数据库,有自身的API,使用该技术时,直接调用Hibernate API即可,而无须过多关注JDBC的具体实现,使用该组件的效率要优于直接使用JDBC,因而,在软件工程中应用得非常广泛。
ORM也称为对象关系映射,是面向对象语言的对象持久化技术。简单的来说就是将面向对象编程过程中的一个数据对象通过映射对应到数据库中的相关表,并将相关数据存储到数据表中。
Hibernate通过配制文件,配制数据库的相关连接属性,相关插件能自动生成Hibernate增、删、查、改等多种方法,效率较高,广泛用于各种Web应该系统中。
2 基于SSH框架的设计开发实例分析
2.1 系统概述
SSH框架在Web系统设计中应用非常广泛,三种组件对应的技术角色各不相同,只要搭配、整合得当,就能极大提高系统的健壮性、可维护性,对于系统日后升级、功能扩充、功能移植等管理活动非常有裨益。
我们以网络机器人也谷称小i机器人(类似MSN的聊天工具),中的一个Web子系统来对SSH框架作进一步的设计及整合的分析与说明。
Web子系统就是要实现如下几方面的功能,如图2:普通用户功能:教说话、改作业及名师排行;管理员功能:信息审核、信息管理、用户管理。
2.2 持久化层
在数据库连接方面,使用mysql数据库即可满足需求。本应用的Web子系统部分只需建立四张表,分别为:MESSAGE(信息),MSUSER(用户),USERTYPE(用户类型),VOTE(投票)。系统采用Hibernate技术连接数据库,应实现如下几步。
2.2.1 创建对象关系映射文件
以上四张表应该对应于面向对象编程的四个JavaBean,表中每个字段分别对应于JavaBean的每一个属性,通过O/R映射文件连接JavaBean与数据表。
2.2.2 创建Hibernate配置文件
Hiber nate直接从配置文件hibernate.properties中读取和数据库连接有关的信息,需要将相关信息写入其中。
2.2.3 通过Hibernate API实现具体的DAO数据访问
每一个JavaBean都有一个对应的DAO类型,在该型中实现了该对象相关数据增、删、改、查的功能,除此之外还能根据需要调用Session的createQuery()方法编写HQL语句以实现其它更为复杂的功能。
2.3 业务逻辑层
Web子系统的业务逻辑层由Spring实现,Sprin的运行时注入由配置文件applicationContext.xml控制。配置文件都是一些关于Bean的定义,包括数据源的配置,SessionFactory的配置以及Service Beans的配置。
Spring运行时注入的特性,也就是需要用到某个属性时,才调用类文件中属性对应的set与get的方法去设置和获取相关对象属性值,因而每一个运行时注入的属性在相应的类文件中都有set与get的方法,每个属性都应以bean的形式标明。
Spring框架处理的是业务逻辑层,是从Struts所对应的控制层转发过来,还必须在其所对应的Struts配制文件中加以标明Spring配制文件所在的位置。
2.4 控制层
Struts框架对应的是系统中的控制层是整个系统架构的枢纽部分。控制层负责程序中业务流程的走向,视图层的重定向响应,以及系统中各模块的装配。控制层部分对日后系统功能的扩充、升级、移植等都相当重要。Struts的配置应用应实现以下二点。
2.4.1 创建Struts框架配置文件
Struts配置文件为:str uts-conf ig.xml在文件中应标明请求的路径、请求对应的Action、请求所对应的ActionForm,以及forward的视图路径等。
2.4.2 修改部署文件web.xml
在系统应用程序部署文件中添加Struts初始化项目:url与Action Mapping对应关系,即:Action Servlet、struts-config.xml文件所有位置等。
至此,一个SSH的网络机器人的Web子系统的架构就搭建起来,Web子系统中各业务功能,就能在此框架下一步步实现。前台业务页面,发送请求到服务器端,由控制层负责转发到业务层,再由业务层处理,通过ORM组件持久化到数据库,最后根据处理结果,由控制层指派相应的jsp视图页面响应。
3 结语
SSH框架搭建的应用系统,视图、业务逻辑、控制、持久化,各层次分明,Struts、Spring、Hibernate分别担当不同的角色,职责清晰,极为有利于系统的运行、维护、扩充、升级、移植、复用等,进一步降低软件开发周期,以及维护成本,提高效率。同时,各模块之间交互过程中耦合性降低,内聚加强,进一步提高了系统的健壮性。
摘要:以J2EE项目的一个子系统为背景,对J2EE三层架构体系作相关的论述,对SSH框架的项目中的应用作相应的探讨,对Struts、Spring、Hibernate在框架中各自角色有较详细的说明,并结合项目实例做了可行性的论证,从理论整合到项目开发中的实际应用作了相关的的探讨。
关键词:SSH框架,三层架构,Struts,Spring,Hibernate,J2EE
参考文献
[1] 王全彬.MVC架构模式在Java开发中的应用[J].四川理工学院学报(自然科学版),2009,2,22(1):38~40.
[2] 陈家瑞.J2EE应用开发课程教学改革探讨[J].福建电脑,2009(1):211.
[3] 拓守恒.基于J2EE的多层架构的Web信息系统构建与设计[J].电脑开发与应用(第22卷第1期):41~57.
[4] 赵少卡.基于Struts+Spring+Hibernate框架的信息交流平台的设计与实现[J].计算机与现代化,2009(2):62~66.
[5] 林信良.Spring技术手册[M].电子工业出版社,2006,6.
【SSH框架在软件工程J2EE三层架构体系中的应用】相关文章:
BIM技术在工程造价管理体系中的应用研究09-11
简析从J2EE框架到基于Web2.0框架的软件重构09-10
“基于校企融合三层递进”实践教学模式在教学中的应用——以企业纳税实务课程为例09-11
塑料模壳早拆模支撑体系在《海泰创新基地工程》中的应用09-29
物联网技术在智能交通系统架构中的应用研究09-11