SSH(Struts,Spring,Hibernate或SpringMVC,Spring,Hibernate)Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。Struts是一个基于MVC模式的应用框架,如果学过Servlet。那么其本质和Servlet差不多,MVC模式主要包括模型(Model),视图(View),控制器(Controller),而Struts主要作为控制器来建立模型和视图的数据交互。

外文名

Struts,Spring

简 写

ssh

类 别

MVC软件开发模式

Struts版本

Struts1、Struts2

简介

SSH框架是Struts、Spring、Hibernate的一个合成框架,目前市场上比较流行的框架中也有它的身影。Struts是一个基于MVC模式的应用框架,如果学过Servlet。那么其本质和Servlet差不多,MVC模式主要包括模型(Model),视图(View),控制器(Controller),而Struts主要作为控制器来建立模型和视图的数据交互。本文介绍的Struts以Struts2为主。它通过拦截器处理客户的各种请求。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情,Spring的核-fl,主要控制翻转(IOC)和面向切面(AOP),简单的说Spring是一种分层的轻量级开源框架。Spring更像是一个容器,将所有配置的Struts和Hibernate中的东西都放置进来,只要能够做好配置,它就会找到相应的位置,进行处理。Hibernate是一个开源代码的对象映射框架,是根据JDBC技术基础衍生而来的,它将直接操作原来的数据库变为直接操作数据表后生成的Java类,实现了对象编程思维来操纵数据库。SSH框架中的各种技术相互协调、配合。实现了这一强大的框架[1]

三大框架

Struts

Struts与SSH框架同样具有开源性,合理恰当的使用Struts技术可以在一定程度上减少基于MVC模型的Web应用系统的开发时间,从而有效控制系统开发成本。事实上,绝大多数程序员在使用Servlets和JSP的可扩展的应用时,已经将Struts框架技术作为系统开发的标准。

Struts技术基于MVC框架,Struts的实现依赖Servlet和JSP实现。EJB和JavaBean两个组件是Struts框架业务功能实现的基础部件;Action和ActionServlet部件是框架实现控制功能的重要部件;视图部分则是由若干存在内在联系的.JSP文件有机构成,来实现系统功能。

Spring

Spring在整个系统体系中提供两种框架:一种是面向方面编程(AOP)容器框架,另外一种是轻量级的反向控制。

Spring的核心部分是轻量级控制反转(Inversion of Control,简称IoC)容器。通过外部的配置文件反过来调用应用程序来替代原有应用程序调用的控制功能,是控制反转的基本思想。在框架中进行控制功能的创建工作就实现了轻量级控制反转,这样就能使控制功能的编写从应用程序的编写中分离出来。在使用组件调用容器时,在框架中的控制功能创建中只需要给出调用组件所用到的对象。典型的轻量级控制反转工作过程如下:首先创建程序中以后所用到的所有对象,并进行对象属性设置,对相关的属性和惯性进行连接配置,最后再确定调用的方法和时间点即可。

Spring架构的反转控制提供了应用场景和复杂程度不同的两种注入方式:构造器注入和Setter依赖注入(Dependency Injection)。Spring支持在实际开发中应用的最为广泛方法注入Setter(Setter Injection)方法,这种方法使用起来更加直观、方便。

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。

在面向对象程序设计中,关系数据库中的表间关系与对象间关系的匹配没有有效的转换来完成匹配,Hibernate的出现可以很好地完成二者之间的关系匹配问题。

Hibernate可以将对象间关系按照一定的逻辑与数据库中表之间的关系进行高耦合度的匹配,这种转换由Hibernate自动进行。使用Hibernate可以减少原来面向对象程序设计时大量的程序与数据库之间SQL的转换,有效提高开发效率。Hibernate是Java平台上高效的ORM映射框架。由于Hibernate使用了反射和运行时字节码生成技术,所以对于最终用户而言,Hibernate几乎是透明地运行。

ssh

结构层次

SSH是Struts、Spring和Hibernate的一个集成框架,是上述三个框架结合在一起的一种用于构建灵活、易于扩展的开发手段。基于SSH框架的软件系统从职能上分大致可以分为三层:表示层、业务逻辑层、数据持久层。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与数据持久层的分离。这样无论前端如何变化,逻辑层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性,提高了开发效率。

(一)表示层

表示层主要涉及Struts的功能,在这一层,首先通过JSP页面实现交互界面,负责传送用户请求和接收响应,然后Struts根据配置文件将接收到的用户请求委派给相应的Action处理。

(二)业务逻辑层

业务层主要涉及Spring的功能,在这一层,管理服务组件负责向Struts配置好的对应Action提供业务模型,该组件的对象数据处理组件完成业务逻辑[3],并提供事务处理等容器组件以提升系统性能和保证数据的完整性。

(三)数据持久层

持久层主要涉及Hibernate的功能,Hibernate实现了数据持久化功能,使得程序员可以通过面向对象地编程思维来操作数据库。在这一层中,依赖于Hibernate的对象化映射和数据库交互,处理Spring中的DAO组件请求的数据,并返回处理结果。

优势

SSH框架是基于传统J2EE框架的新技术,SSH框架继承了J2EE的分层架构模式,二者的不同之处仅在于层与层之间的实现方法。当J2EE框架和SSH架构完成相同的运算任务时,SSH框架消耗的系统资源较少。

SSH框架在业务对象的平台专用性上没有特殊的限定要求,在SSH框架中业务逻辑的实现通过普通的Java对象即可完成。SSH组合框架技术优势体现在四个方面:

(1)分离了Java代码和HTML代码,降低了对开发人员要求的复合度。

(2)系统的层与层之间的工作相对独立,代码耦合度低。

(3)即使脱离了Spring环境的AOP机制,也不会妨碍AOP实现业务的功能。

(4)与SSH配合使用的Hibernate等跨平台技术开源性极强,促使了SSH框架的飞速发展。

SSH的技术优势使得采用SSH框架技术开发的系统具备了很强的可拓展性和可移植性。同时,采用开源的SSH框架能够大大简化系统开发的复杂度,缩短系统开发时间。