SSH框架技术简述
摘 要:SSH框架作为目前较流行的一种Web应用程序开源框架,使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持?本文对Struts框架?Hibernate框架及Spring框架进行了深入的分析,并详细阐述了如何使用Spring对Struts与Hibernate加以整合,从而构成SSH框架。
关键词:SSHJ2EE框架技术
SSH是一种基于J2EE技术的MVC软件开发框架,它可以大大降低J2EE程序开发的难度,提高开发效率?本文试图通过对SSH框架的组成与功能进行深入的分析,揭示其较传统J2EE开发工具的先进之处。
1. SSH框架技术简述
集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。相比传统的J2EE开发工具,它具有一系列独特的优点?
首先,SSH框架能够有效的降低开发成本?缩短开发周期?SSH作为一款开源的框架,无需部署在成本极高的大型服务器上,很多时候只需要配合APACHE一类较便宜的服务器使用。 其次,SSH作为一款轻量级的框架可以有效降低系统开销,同时它还可以与异步JavaScript和XML框架同时使用,不仅能够对用户体验产生极大的改善,且有助于提升系统性能。 最后,由于SSH框架建立于J2EE的基础之上,所以其同时具备了J2EE的安全性与跨平台优势?同时由于其往往将组件相关的配置与关系写入XML配置文件,使其在面对需求变化时可通过简单的对配置信息的修改来加以实现而无需对系统进行大的修改。2. 表示层框架Struts简介
最初Struts于2002年问世的时候,由于其创始人希望其能够对标签库与JSP等开发技术有所助益,所以它被设计成了一个开源项目。它很好的对MVC系统的开发提供了底层支持,有效的缩短了运用MVC模型对WEB应用的开发周期,最终成为了MVC模式事实上的行业标准。 Struts由四个组件协同工作,其中ActionServlet类是中央控制器,在每个项目中唯一存在。而Action作为分控制器对具体流程进行实际上的控制,调用相应的业务逻辑模块来实现功能并送出结果?ActionMapping作用是帮助控制器将请求映射到操作,ActionForm的作用则是接受和存储表示层中接受的数据。这四部分共同实现了Struts框架对流程的控制, 由于Struts框架属于开源项目,这给了我们深入理解其内部实现机制的机会?总体而言,Struts的优势很明显?它的优点在于它拥有大量的成功案例可供开发者借鉴?同时提供了丰富的标记库(Taglib),可大大提高开发的效率?而它将表现与逻辑分离的做法,使得结构更加清晰,有助于开发者将精力集中于业务逻辑的实现?最后,它具有优秀的页面导航功能,这对后期的维护有着不可估量的好处。3. 持久层框架Hibernate简介
Hibernate是一款开源的对象——关系映射框架,它对JDBCAPI进行了极其轻量级的对象封装,从而极大的扩展了开发人员对数据库的操纵程度,同时它封装了数据访问的细节,使得开发者可以将更多的精力集中在业务逻辑上。 Hibernate有6个核心接口,分别是拥有负责将其初始化的SessionFactory接口,负责执行被持久化对象的CRUD操作的Session接口,负责事务相关的操作的可选接口Transaction以及负责执行各种数据库查询Query接口与Criteria接口?Hibernate通过这些接口,对持久化对象进行各种存取操作并进行事务控制。 Hibernate主要有四块内容:持久化类PO,它是数据库表的一个映射,是Hibernate的操作对象,而操作结果会反映到对应的数据库表中,映射文件XMLMapping,它存放着PO和数据库表的映射信息,如表名和类名的对应,PO的属性与数据库表中字段的对应,,存放着连接数据库的配置信息已经映射文件的路径,在Hibernate初始化时Configuration会加载该文件信息到计算机内存,并创建一个SessionFactory对象,把读入的配置信息拷贝到SessionFactory对象的缓存中,HibernateAPI,主要是前文中所述的六大接口,彼此配合最终实现Hibernate对PO的各种操作并持久化到数据库中。4. Spring框架简介
Spring框架提供了一种能够完全独立于各种应用服务器并可与现有框架无缝整合的解决方案,其主要通过控制反转与面向方面编程两种方式来进行实现,其主要优点在于无论你是否使用了EJB,SPRING都能够有效的对你的中间层对象进行组织,它为数据存取提供了一个统一的框架,并能够以一种统一的方式对不同的程序与项目的配置文件进行处理,它是一个全面的解决方案,包括了非常丰富的内容,包括视图层?模型层?数据层等,它提供了很多原来只有EJB能提供的功能(如声明式事务管理),却又无须运行在EJB容器上。 Spring框架由七个有着明确定义的模块组成,其中SpringCore是它的基础部分,是控制反转的承载容器?而在此基础上衍生出来的SpringAOP则提供了对面向类编程的支持,Springweb与Springorm则分别提供了对MVC框架与ORM框架的支持,SpringDAO则简化了JDBC编程,使代码更健壮,SpringContext作为一个强大的集成工具箱,有利于进行企业级程序的开发,而相比之下,SpringWebMVC则声名不彰,尽管它作为一款MVC框架提供了比Struts更自由的配置度但却未能得到广泛的应用,以上七个模块均可单独或联合实现,具有较高的自由度。5. 使用Spring对Struts与Hibernate加以整合
我们从前文中可以清晰的看到,Struts是目前应用于MVC框架中的业界实际标准,其具备高度的可靠性与稳定性,同时将表现与逻辑分离,从而使得结构更加清晰?同时提供了丰富的标记库(Taglib)与页面导航,大大提高了开发的效率与易维护性,但是在模型层却缺少相应的实现。 而Hibernate作为目前业界最成熟的持久层框架之一,封装了数据访问的细节,使得开发者可以将更多的精力集中在业务逻辑上,极大的提高了开发效率。 SSH框架的指导思想就是将这两个框架有机的整合在一起,充分发挥出二者各自的优点, Spring通过Springweb与SpringORM两个模块分别对Struts和Hibernate两个框架进行了整合,为企业级的应用程序提供了一套模块化的一揽子解决方案,在让前者发挥出其对程序流程的良好控制作用的同时让后者负责数据库的访问,以达到优势互补、降低开发难度、提高开发效率的目的。 1.(孙吕坦.AGRS管理与决策支持系统:[硕士学位论文].北京:中国地质大学(北京),2009)
2.(陈天河.StrutsHibernateSpring集成开发宝典.北京:电子工业出版社,2007)?