APP下载

浅析SSH架构

2011-08-24甄少鹏

时代农机 2011年5期
关键词:表示层偶合代码

甄少鹏

(河北省石家庄市高新技术产业开发区国税局,河北 石家庄 050000)

1 引言

目前,国内外信息化建设已经进入以Web应用为基础核心的阶段。Java语言应该算得上是开发Web应用的最佳语言。然而,就算用Java建造一个不是很烦琐的Web应用系统,也不是件轻松的事情。有很多东西需要仔细考虑,比如要考虑怎样建立用户接口?在那里处理业务逻辑?怎样持久化?而这3层构架中,每一层都有各自要考虑的内容,比如各个层该使用什么技术?怎样的设计既能松散偶合还能灵活多变?怎样替换某个层而不影响整体架构?应用程序如何做各个方面的处理(例如:事物处理)?幸运的是,构架一个Web应用需要解决的一些问题已经由曾遇到过这类问题的开发者建立起处理这类问题的框架。本文将讨论怎样结合3种著名的框架Struts、Spring和Hibernate来使你的程序做到松散偶合。

2 开源框架Struts、Spring、Hibernate

(1)Struts实现 MVC 的机制。 Struts是基于模型(Model)、视图(View)和控制器(Controller)的MVC设计模式的应用架构。Struts在Web应用开发中的使用,极大地缩短了开发时间,在很大程度上摆脱了传统开发模式的束缚。图1显示了Struts实现的MVC框架。

图1 Struts实现的MVC框架

(2)Spring基本概念及其特点。Spring是一个AOP框架和IoC容器。运用AOP可以创建 “横切关注点”(Crosscutting concerns),在应用时将它们插入代码中,使得代码有良好的可重用性。IoC容器允许在需要生成对象的地方创建一个应用上下文,然后将这些对象传递给它们的合作对象。只需要在配置文件中声明对象问的关系,由IoC容器管理这些对象,在需要时由Spring提供。使用Spring,开发者可以有效的组织中间层对象,消除项目中单例类的大量使用以及对大量定制文件格式使用的需要。无论是使用JDBC还是使用ORM,Spring提供了一个数据存取的一致性框架。

(3)Hibernate持久层框架。Hibernate是一个面向Java环境的轻量级O/R Mapping(对象/关系数据库映射)工具,其作用是对Java类与数据库中的表进行映射,完成数据的持久化、同时也提供数据的查询、一致性检查、事务管理等机制。与直接调用JDBC操作数据库相比,Hibernat可以大幅减少开发时人工使用SQL和JDBC处理数据的时间。程序员能够完全用面向对象的思维去设计系统,将全部精力集中在编程中,而不用关心数据库的连接、事务、并发性等问题。另外,由于在编程中不会有特定数据库相关的代码,所以我们可以很容易地移植数据库而不用修改JAVA代码 (只需修改database schema及O/R映射文件),大大提高了系统的灵活性。

3 Struts+Spring+Hibernate轻量级架构

如何建立你的架钩,并且怎样让你的各个应用层保持一致?如何整合框架,以便让每层以一个松散偶合的方式彼此作用而不管底层的技术细节?这里讨论一个使用3种开源框架的策略:表示层用Struts,业务层用Spring,而持久化层则用Hibernate,

(1)表示层。一般来讲,一个典型的Web应用的前端应该是表示层,这里可以使用Struts框架。Struts的主要功能:管理用户的请求,做出相应的响应、提供一个流程控制器,委派调用业务逻辑和其他上层处理、处理异常、用户界面的验证。

(2)持久层。Hibernate的主要功能:查询对象的相关信息、存储、更新、删除数据库记录、支持大部分主流数据库,并且支持父表/子表(Parent/child)关系、事物处理、继承和多态。

(3)业务层。业务层的主要功能:处理应用程序的业务逻辑和业务校验、管理事务、提供与其他层相互作用的接口、管理业务层级别的对象的依赖、在表示层和持久层之间增加了一个灵活的机制,使得他们不直接联系起来、通过揭示从表示层到业务层之间的上下文来得到业务逻辑、管理程序的执行(从业务层到持久层)。

4 结语

SSH架构是目前国内外软件企业的最主流的应用技术,也是J2EE未来的发展趋势。Struts作为前台控制框架简化了程序的开发,使界面开发人员和Java程序员达到了有效的分离,使项目的可扩展性大大增强,提升了开发效率,降低了开发成本。Spring通过控制反转,层层回调,极大地减少了业务逻辑代码,Hibernate能极大地减少数据库相关操作代码,能实现一个简单高效的持久化。通过三者的有机结合使得整个应用简单,松偶合,且容易测试。

[1]梁立新.项目实践精解:基于Struts-Spring-Hibernate的Java应用开发[M].北京:电子工业出版社,2006.

[2]孙卫琴.精通Hibernate:Java对象持久化技术详解[M].北京:电子工业出版社,2005.

[3]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.

[4]罗时飞.精通Spring[M].北京:电子工业出版社,2005.

猜你喜欢

表示层偶合代码
基于乙醇偶合制备C4烯烃的研究
基于Spring的企业级Web项目架构设计研究
创世代码
创世代码
创世代码
创世代码
菏泽市1例接种Ⅰ+Ⅲ犁脊灰减毒疫苗偶合猝死病例调查、诊断分析
多金属偶合腐蚀模型
预防接种过程中的偶合症发生概率有多大
ASP.NET三层构架解析