admin 管理员组文章数量: 1184232
2024年3月28日发(作者:via a cash register)
电脑编程技巧与维护
解析SSH整合框架的优化处理
周丕健
(广西南宁英泰职业培训学校,南宁530022)
摘要:SSH整合框架的优化处理基于Struts、Spring、Hibernate3个框架的内部优化,重点介绍了SSH整合框架的
原理及Struts、Spring、Hibernate3个框架常用的优化方法。
关键词:SSH整合框架;Struts;Spring;Hibernate;优化
The Optimal Disposing of Struts-Spring-Hibernate Integration Architecture
ZHOU ian
(Gangxi Nanning Yingtai Career Training School,Nanning 530022)
Abstract:The Optimal Disposing of Struts、Spring、Hibernate inte gration architecture was based on three framework of
internal optimization.the paper expounds the principle of SSH integration architecture and the optimization method in used
on Stutrs、Spring、Hibernate.
Key words:SSH integration architecture;Stuts;Sprring;Hibernate;Optimization
1 引言
目前,使用J2EE开发的Web的企业一般会采用EJB为
代表的重量级框架或以SSH为代表的轻量级框架,E}1于SSH
相对于EJB来说可以简化开发模型,消除使用J2EE API时出
现的不必要的复杂性和限制,缩短开发部署时间,因而被越
来越多企业采用。然而,在实际的开发过程中由SSH整合框
hibernateTemplate对象(DAO实现类继承了Hibernate的类
HiberuateDaoSupport),再通过O/R映射文件及数据源或连接
池与数据库进行连接,实现“操作一个对象就是操作数据库
的一行数据”的目的,从而完成Spring层对DAO接口的操作
的响应。
3 优化要点
3.1 Spring
架做出来的系统在性能上会出现很大的不同,因此对SSH整
合框架做适当的优化是一个必要的过程。 (1)使用Spring本身提供的characterEncodingFilter字符
编码过滤器解决中文乱码问题。这样不仅不用动手写代码,
而且保证每次请求只过滤一次。提高了开发性能和过滤效率。
即在web.xml中加入相应的配置。
<filter—class>org.springfrarnework.web.iflter.
CharacterEncodingFilter</filter——class>
2 SSH整合框架原理
SSH整合框架本身就是利用Struts、Spring、Hibernate3大
框架的各自优势进行互补开发的,它以Stutrs作为表示层框
架,Spring作为业务逻辑层框架,Hibernate作为持久化层框
架,有效地支持了MVC模式。其中起核心作用的是Spring框
架。
(2)使用延迟加载过滤器解决不同层的事务延迟能否加
载的问题。因为一般Spring封装的Hibernate和纯Hibernate的
各部分的相互关系如图1所示。
ⅡI Laye ̄ B h 8 L # Pernster L
使用是不同的,由Spring来控制事务的管理可能会出现在
DAO层延迟加载能够使用,但在Service层就出现Session关
S 融 融 e
}、 h 啪 0口口
Hiben t 辍嚣1. n
\ Data ̄ta-*
闭的情况。即在web,xml中加入相应的过滤器。
<filter——class>org.springffamework.orm.hibernate3.suppo ̄.
OpenSessionlnViewFilter</filter-class>
氨 堪 ^
船ti
1帆
0阮
.
。妊
㈣g# m
写/ e “}收ion P∞I
白* La ̄aage
Su∞ t af甜时
Stsat ̄fi*
盥】.
ela hm …
(3)设置事务切人点尽可能多地放在DAO层。因为事务
本身是与数据库的操作最接近的,这样可以让数据库的操作
图l
在尽可能短的时间内完成,提高效率。
<aop:pointcut id=’ MO”expression=’’execution
2.1 Stutrs—Spring的整合
通过JSP页面提交请求时,Stutrs的ActionServlet根据
Stutrs—config.xml中的配置,通过Spring的请求代理接VI
DelegatingActi0nPmxy将所接收的用户请求转发给相应的Stutrs
的Action,以此实现Strus与Spring的有机整合。
2.2 Spring—Hibernate的整合
com.DAO. . (一))”,>
(4)AOP用于业务处理时尽可能多地把切入点放在业务
(下转到57页)
作者简介:周丕健(1975一),男, E程师,主要从事计算机
软件的应用分析与研究。
收稿日期:2010—08—10
Spring通过操作Hibernate中的DAO来操作数据库取得
一
1O—
DATABASE AND INF0RMA Ⅱ0N MANAGEMENT 数据库与信息管理
表1
表3
场景一 假设当前手机中有600条短信,而要查找的
场景三 手机中存了600条短信,但是和某个人联系频
短信在第三百条左右的位置,并且知道这条
繁,和这个人的短信大概有400条,但是刚好
短信是谁发的。
需要找这个人的某条短信。
顺序下翻 顺序下翻300多条,逐条查找。
顺序下翻 顺序下翻,逐条查找。
高效的管理软件 可以通过联系人查找,输入联系人,再在小
高效的管理软件 可以通过关键词查找,输人关键词。
范围里继续查找。
表2
参考文献
场景二 手机中有600条短信,要查找的短信在第三
【1]靳岩,姚尚朗.Google Android开发入门与实践.北京:人
百条左右,此时忘了是谁是发件人,而只记得
民邮电出版社,2009.
大致日期。
【2]余志龙,陈昱勋,郑名杰.Google Android SDK开发范例
顺序下翻 顺序下翻300条,逐条查找。
大全.北京:人民邮电出版社,2009.
高效的管理软件 可以通过日期查找,输入日期范围,再在小范
[3】E2ECloud工作室.深入浅出Google Android.北京:人民邮
围里继续查找。
电出版社,2009.
(上接第10页)
层。因为这样处理在逻辑上更合理,提高了以后维护的性能。 据不同的情况选用正确的方法。
这样的处理可以实现防止重复登录、安全检查等。
(6)当遇到海量数据处理时,一般不直接使用Hibernate
<aop:pointcut id=”AllMethod” expression=”execution
API,而是直接通过JDBC API来做,这样避免了Hibernate先
( com.Business.imp1.*.exec(..))”,>
查询出来加载到内存,再进行操作引发的性能问题,其速度
3.2 Hibernate
可达到最快。
(1)实体类的某个属性类型为大对象(CLOB,BLOB)时,
3_3 Struts
要对这个属性进行延迟加载,即在映射文件中对这个属性的
(1)Sturts要从Spring的上下文环境获取Bean,关联方法
配置元素添加属性lazy=true。
最好用监听器,这样可简化编程,提高效率,减少耦合性。
<property name=“content”type=“clob”lazy=“true”
即在web.xml中加入:
>
<listener-class>org.springframework.web.context.
(2)根据实际的情况选择合适的抓取策略,进而提高查
ContextLoaderListener</listener-class>
询效率。常用的有单端关联(<many—to—one>、<one—to—one>)
(2)处理Action请求时,最好在请求路径中加上模块名
设置或集合属性设置。
称,以此来区分不同模块的请求,避免冲突。
1)单端关联的设置可把fetch属性设为select或join。
(3)Action响应事件时,尽可能用不同的请求建立同一个
<many—to—one nanle=“account”colu砌=“id”fetch=
Action,通过参数的传递来区别要响应的事件,从而减少
‘'join”not—null=“true”,)
Action类的数量。
2)集合屙陛上的设置可把fetch属性设为select或ioin或
4 结语
subseleco
<set name=“orderSet”cascade=“all”inverse=“true’’
以上仅为一些较为常用的优化处理方式,在实际的开发
fetch=“subselect”>
过程中还受到方方面面的制约。只要在开发时采用以上的优
</set>
化处理,基本可使系统运转良好。
(3)根据实际情况合理使用二级缓存及缓存的进发访问
策略。如两个持久化类,它们的实例数据很少会被更新,而
参考文献
且是多用户之间共享,则可选择读写型策略,即只要配置在
[1】阳雪峰,陈文臣.Java Web2.0一基于Spring、Sturts、
映射文件中即可。
Hiberuat轻量级架构开发.机械工业出版社,2009.
<cache usage=“read—write” include=“all” region=
[2】高洪岩.至简SSH:精通Java Web实用开发技术(Struts+
“
com.polo.Gory”,>
Spring+Hibernate).电子工业出版社,2009.
(4)根据实际情况合理使用查询缓存及缓存策略,达到 【3]张峰,李慧丽.Java Web 2.0架构开发与项目实战.清华
提高效率的目的。一般启用查询缓存可以使用默认的查询缓
大学出版社.
存区域org.hibernate.cahe.StandardQueryCache。 【4】王君.基于Sturts+Spring+Hibernate的企业级 b应用框
(5)根据实际情况合理使用正确的查询方法:一种是得到 架的研究.合肥工业大学,2007.
单个持久化对象的get()方法和load 0方法,另一种是
Query对象的list 0方法和iterator 0方法。在开发中应该依
57——
版权声明:本文标题:解析SSH整合框架的优化处理 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711635280a602916.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论