SSH集成框架文献综述文档格式.docx
- 文档编号:20700205
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:5
- 大小:72.55KB
SSH集成框架文献综述文档格式.docx
《SSH集成框架文献综述文档格式.docx》由会员分享,可在线阅读,更多相关《SSH集成框架文献综述文档格式.docx(5页珍藏版)》请在冰豆网上搜索。
冯灵霞
2013年3月20
SSH集成框架业务逻辑的实现方法
摘要
SSH是Struts+Spring+Hibernate的集成框架的简称,是目前较流行的一种Web应用程序开源框架。
Struts,Spring,Hibernate这三大框架在Web应用中不是孤立执行而是相互关联,相互支持的。
这就使集成了SSH框架的系统在职责上的四层:
表示层、业务逻辑层、数据持久层和域模块层密切联系,最大化地实现SSH集成框架的功能。
本文重点从系统的业务逻辑层出发,深入的阐述SSH集成框架在系统中的业务逻辑实现方法。
在各个层中功能交互,逻辑连接的实现方法。
概述了业务逻辑,业务逻辑在系统中的具体表现以及它的特征和它在系统中经常出现的问题。
在了解了业务逻辑的基本概念后,进入本文的核心内容:
SSH集成框架业务逻辑的实现方法。
关键词:
业务逻辑,SSH集成框架,Web,实现方法
1业务逻辑简述
1.1业务逻辑的概述
什么是业务逻辑?
所谓业务逻辑就是业务规则:
除了简单的增删改查的数据访问之外,还会涉及到一些复杂的功能流程和功能要求,这些被称为业务逻辑。
就像在论坛用户注册:
包括要向邮箱发送电子邮件:
如果发送失败,则注册失败[1]。
1.2业务逻辑的特征
业务逻辑的特征:
与数据操作的关系可能包含多次数据操作,可能同时包含数据操作和非数据操作,可能只有非数据操作。
业务逻辑在维护方面的特征:
在业务逻辑运行过程中表示策略的逻辑通常会经常修改。
所以在实现业务逻辑的过程中我们会遇到很多需要解决的问题:
多次数据操作时:
如何使这些逻辑实现方法处于同一session下,非数据库事务与数据库事务如何归整到同一事务,复杂的权限控制会置于业务逻辑中,如何优化这些繁琐的代码?
.如何处理业务规则频繁变化?
这些就是我们接下来介绍的SSH集成框架所要解决的问题[1]。
2SSH集成框架简述
2.1Struts
Struts是通过采用JavaServlet/JSP技术,实现了基于JavaEE
Web应用的MVC设计模式的应用框架。
使用Struts可以减少我们在运用MVC设计模型来开发Web应用的时间。
在服务器启动后,Struts根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存[3]。
2.2Spring
Spring是为了解决企业应用开发的复杂性而创建的。
Spring是基于JavaBean来完成以前只可能由EJB完成的事情。
Spring的用途不仅用于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益[4]。
2.3Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在JavaServlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的Java应用中。
3SSH集成框架业务逻辑的实现方法
以上简单介绍了Struts,Spring,Hibernate它们各自的实现方式,然而将它们整合在一起,又是如何实现业务逻辑的呢?
执行效果又如何呢?
可想而知,整合后的框架会更强大,执行效率会更快。
基于分开的三大框架,集成后的框架便是质的飞跃!
在实现业务逻辑时,Hibernate主要执行以下操作:
首先通Configuration().configure()
读取并解析hibernate.cfg.xml配置文件,再由hibernate.cfg.xml中的<
mappingresource=“com/xx/Userhbm.xml”>
读取并解析映射信息,然后通过configbuildSessionFactory()代码以创建SessionFactory,再执行sessionFactory.openSession()打开Session,接下来执行sessionbeginTransaction()创建Transaction事务,再通过persistentoperate实现持久化操作,最后通过session.getTransaction().commit()提交事务,然后关闭Session,关闭sesstionFactory。
在Hibernate实现了它所应负责的业务逻辑的同时还要处理一个很重要的问题:
加载和缓存问题。
那么Hibernate如何完成这些要求的呢?
Hibernate通过如下操作延迟加载:
在Hibernate2中通过操作实体对象和集合延迟加载;
Hibernate3中提供了属性的延迟加载功能。
当Hibernate在查询数据的时候,数据并没有存在于内存中,当程序真正对数据进行操作时,对象才存在于内存中,这样实现了延迟加载,它节省了服务器的内存开销,从而提高了服务器的性能。
最后谈论下Hibernate的缓存机制。
首先介绍一些缓存的概念:
内部缓存存在Hibernate中又叫一级缓存,属于应用事务级别缓存;
应用缓存及分布式缓存称为二级缓存,其中分布式缓存是指:
数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被频繁使用的缓存;
最后还有三级缓存。
接下来具体介绍一下各级缓存:
一级缓存是session级的缓存也叫事务级的缓存,只缓存实体,生命周期和session一致,不能对其进行管理,不用显式地调用;
二级缓存是sessionFactory缓存也叫做进程级缓存,使用第三方插件实现,也是只缓存实体,生命周期和sessionFactory一致,可以进行管理。
其中用到了第三方插件,我们用EHCache可以先在hibernate.cfg.xml文件中加入<
propertynamehibernate.cache.user_second_level
Cache”>
true<
/property>
,同时在映射中也要显式地调用<
cacheusage=“read-only”/>
在二级缓存中,如果关联的表发生了修改,那么查询缓存的生命周期也结束了。
如果要再次查询该表,就要在程序中手动启用查询缓存:
query.setCacheable(true)[5]。
在实现系统的业务逻辑时,Struts主要操作是:
web应用启动时会加载初始化ActionServlet,ActionServlet,从struts-config.xml文件中读取配置信息,它们存放到各种配置对象。
当ActionServlet接收到一个客户请求时,将执行如下流程:
首先检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息,如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中,再根据配置信息决定是否需要表单验证,如果需要验证,就调用ActionForm的validate()方法。
如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功。
接下来ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。
然后Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件。
最后ActionForward对象指向JSP组件生成动态网页,返回给客户[6]。
而Spring主要执行的操作是:
SpringMvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。
然后通过DispatcherServlet查询一个或多个HandlerMapping找到处理请求的Controller,再由DispatcherServlet将请求提交到目标Controller,待Controller进行业务逻辑处理后,会返回一个ModelAndView,再由Dispathcher查询一个或多个ViewResolver视图解析器,
找到ModelAndView对象指的视图对象,最后视图对象负责渲染返回给客户端[8]。
这样从表面上看Struts、Spring、Hibernate在系统中各司其责,但实质上它们内在联系非常之多,它们是一个整体,如果离开了其中任意一个分支,那么系统的业务逻辑就不会实现的那么自然,也不会最大的发挥SSH集成框架的优越其他框架的功能。
整个SSH集成框架贯穿于系统的表示层、业务逻辑层、数据持久层和域模块层,帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
SSH集成框架业务逻辑实现方法可以总的概括为:
通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。
管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。
最后依赖Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果[9]。
结论
通过上面的论述,我们对业务逻辑和SSH集成框架有了初步的了解,并学习了SSH实现业务逻辑的方法:
使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
。
具体做法是:
用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。
基于SSH集成框架,我们不仅可以提高开发效率,优化代码结构,也提高了代码的执行效率和系统的质量,而且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。
SSH集成框架帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
所以SSH集成框架是值得我们深入了解的技术。
参考文献
[1]李刚.轻量级J2EE企业应用实战-Struts+Spring+Hibernate整合开发[M].北京:
电子工业出版社,2007.4.158-159
[2]曹晓钢,唐勇,夏昕.深入浅出Hibernate[M].北京:
电子工业出版社,2005.6
[3]林信良.Spring2.0技术手册[M].北京:
电子工业出版社,2002..32-38
[4]沃尔斯.SpringinAction[M].北京:
人民邮电出版社,2006.3.56-59
[5]程杰.大话设计模式[M].北京:
清华大学出版社,2007.12.48-49
[6]孙卫琴.Java面向对象编程[M]:
北京:
电子工业出版社,2006.7.168-172
[7]阎宏.Java与模式[M]:
电子工业出版社,2002.10..88-96
[8]郭峰.我的J2EE成功之路[M]:
电子工业出版社,2009.11.108-111
[9]李刚.Struts权威指南[M]:
电子工业出版社,2007.9.156-168
[10]高洪岩.至简SSH:
精通JavaWeb实用开发技术[M]:
电子工业出版社,2009.11.99-103
[11]Cavaness,C..JakartaStruts[M]:
O’ReillyTaiwan,2005.8.66-71
[12]GaryMak,
DanielRubio,
JoshLong.SpringRecipes:
AProblem-SolutionApproach[M]:
Apress,2008.71-78
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSH 集成 框架 文献 综述