SSH是 struts+spring+hibernate的一个集成
框架,是16年之前较为流行的一种Web应用程序开源框架。区别于
Secure Shell 。
框架简介
SSH框架集,是现在大多数软件设计过程中都会使用的一种框架集。而这种框架是基于MVC的开发,且
MVC模式已经成为现代J2EE开发中的一种常用模式,且受到越来越多JSP、PHP等开发者的欢迎。MVC模式,分别是模型(Model)、视图(View)、控制器(Controller)。
应用程序被分割成这三大部分之后,各自处理自己的任务。视图层通过提取用户的输入信息,提交到控制器之后,控制器根据某种选择来决定这个请求交由给模型层来处理,模型层根据业务逻辑的代码处理用户请求并返回数据,并最终用视图层展示给用户。
而前面提到的SSH框架集,就是很好的对应了MVC模式的开发使用。这种Struts+Hibernate+Spring的三大框架整合,契合着MVC模式的三层对象。其中Struts对应着前台的控制层,而Spring则负责实体bean的业务逻辑处理,至于Hibernate则是负责数据库的交接以及使用Dao接口来完成操作。
框架解析
SSH是Struts、Hibernate和Spring的集成框架:
Struts
Struts与SSH框架-同样具有开源性,合理恰当的使用Struts技术可以在一定程度上减少基于MVC模型的Web应用系统的开发时间,从而有效控制系统开发成本。事实上,绝大多数程序员在使用Servlet和JSP的可扩展的应用时已经将
Struts框架技术作为系统开发的标准。
Struts技术基于
MVC框架,Struts的实现依赖
Servlet和
JSP实现。EJB和JavaBean两个组件是
Struts框架业务功能实现的基础部件;Action和ActionServlet部件是框架实现控制力能的重要部件;视图部分则是由若干存在内在联系的JSP文件有机构成,来实现系统功能。其工作原理如下:
1、使用者通过浏览器客户端发送HTTP协议的数据请求。
2、HTTP请求到达服务器后,经过控制器,使用框架结构填充FormBean。
3、经过填充的数据请求通过框架中控制器的Action组件进行数据业务处理。
4、经过控制器处理过的业务数据调用struts的基础部件实现业务逻辑。
5、将业务逻辑经过转换形成JSP业务进行处理,井将处理结果返回
6、用户在客户端或者浏览器上得到
HTTP请求的响应。
Hibernate
Hibernate,是负责了跟
数据库的交接。通过持久化数据对象,进行对象关系的映射,并以对象的角度来访问数据库。通过封装JDBC,使得开发人员可以以面向对象编程的思想来操控数据库,从而摆脱了以往使用JDBC编程时的“死板”操作。通过hibernate.cfg.
xml文件来取代以往的JDBC连接数据库的一大串代码,通过XXX(实体Bean的类名).hbm.xml文件来与数据库的具体表进行映射。并且Hibernate有自己的HQL语句,与数据库的SQL语句相似,但不同的是HQL语句在面向对象编程的角度上,通过Session的createQuery方法创建户一个query对象,由这个对象来完成对数据库的增删改查等操作。通过Struts2中Action的返回值,来调用Dao层中的业务处理。
Spring
Spring,使用基本的实体JavaBean来完成以前只能用EJB完成的事情。而其核心则是控制反转(IOC)和面向切面编程(AOP)。使用Spring,意味着一个对象的创建再也不是自己new出来的,而是全权交给了IOC容器去实例化。与此同时,Spring通过采用依赖注入(DI)的方式,通过属性的Setter和Getter方法来注入这个对象的属性,这样的好处就是不完全依赖于容器的
API,且查询依赖与代码实现了解耦。而AOP,则是将应用的业务逻辑和系统级服务(例如事务)分离开来,进行内聚性的开发,应用对象只负责完成业务逻辑而不关心日志或者事务的处理。
技术优势
SSH框架是基于传统J2EE框架的新技术,SSH框架继承了J2EE的分层架构模式,二者的不同之处仅在于层与层之间的实现方法。当J2EE框架和SSH架构完成相同的运算任务时,SSH框架消耗的系统资源最少。
SSH框架在业务对象的的平台专用性上没有特殊的限定要求,在SSH框架中业务逻辑的实现通过普通的Java对象即可完成。
SSH组合框架技术优势体现在四个方面:一、分离了Java代码和HTML代码,降低了对开发人员要求的复合度。二、是系统的层与层之间的工作是相对独立的,代码耦合度低。三即使脱离了Spring 环境的AOP机制,也不会妨碍AOP实现业务的功能。四、与SSH配合使用的Hibemate等跨平台技术开源性极强促使了SSH框架的飞速发展。
SSH的技术优势使得采用SSH框架技术开发的系统具备了很强的可拓展性、可移植性。同时,采用开源的SSH框架能够大大简化系统开发的复杂度,缩短系统开发时间。
技术意义
框架的使用可以大大缩短大型系统的开发周期,提高开发质量,就传统的Java编程来说,基于类库的面向对象的技术来比较,框架已经为我们封住这些代码,在开发的过程中,只要能够调用这些已经写好的类或接口,来实现其中的方法,或者重写其中的方法,使其为我们的工作服务,那么就可以节省我们的开发周期。使工作更加高效有序地进行。
应用框架更倾向于面向专业领域的软件重用,随着软件行业的不断发展,各种系统变得更加复杂,其中所涉及的领域也越来越宽泛,如果每接到一个新的系统重新开始开发,那会是一个很漫长的过程,降低了工作效率。如果团队中的工作人员各自写各自的,由于每个人的工作风格不同,编写代码的方式也不同,那么这个工程就会变得杂乱无章,并且如果系统出现问题,想要再次维护,更是难上加难。因而SSH框架可以使开发人员在编写程序时尽量一致,这样可以减少因工作习惯不同而导致的维护工作复杂的问题。