已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单位代码 01 学号 090101001 分 类 号 tp312 密 级 文献综述 ssh集成框架业务逻辑的实现方法院(系)名称信息工程学院专 业名 称计算机科学与技术学 生姓 名 秦江辉指 导教 师冯灵霞2013年3月20黄河科技学院毕业设计(文献综述) 第 9 页ssh集成框架业务逻辑的实现方法摘 要ssh 是 struts+spring+hibernate的集成框架的简称,是目前较流行的一种web应用程序开源框架。struts,spring,hibernate这三大框架在web应用中不是孤立执行而是相互关联,相互支持的。这就使集成了ssh框架的系统在职责上的四层:表示层、业务逻辑层、数据持久层和域模块层密切联系,最大化地实现ssh集成框架的功能。本文重点从系统的业务逻辑层出发,深入的阐述ssh集成框架在系统中的业务逻辑实现方法。在各个层中功能交互,逻辑连接的实现方法。概述了业务逻辑,业务逻辑在系统中的具体表现以及它的特征和它在系统中经常出现的问题。在了解了业务逻辑的基本概念后,进入本文的核心内容:ssh集成框架业务逻辑的实现方法。关键词:业务逻辑,ssh集成框架,web,实现方法 目 录ssh集成框架业务逻辑的实现方法11业务逻辑简述31.1业务逻辑的概述31.2业务逻辑的特征32 ssh集成框架简述42.1 struts42.2 spring42.3 hibernate43 ssh集成框架业务逻辑的实现方法5结 论8参考文献91业务逻辑简述1.1业务逻辑的概述什么是业务逻辑?所谓业务逻辑就是业务规则:除了简单的增删改查的数据访问之外,还会涉及到一些复杂的功能流程和功能要求,这些被称为业务逻辑。就像在论坛用户注册:包括要向邮箱发送电子邮件:如果发送失败,则注册失败1。1.2业务逻辑的特征业务逻辑的特征:与数据操作的关系可能包含多次数据操作,可能同时包含数据操作和非数据操作,可能只有非数据操作。业务逻辑在维护方面的特征:在业务逻辑运行过程中表示策略的逻辑通常会经常修改。所以在实现业务逻辑的过程中我们会遇到很多需要解决的问题:多次数据操作时:如何使这些逻辑实现方法处于同一session下,非数据库事务与数据库事务如何归整到同一事务,复杂的权限控制会置于业务逻辑中,如何优化这些繁琐的代码?.如何处理业务规则频繁变化?这些就是我们接下来介绍的ssh集成框架所要解决的问题1。 2 ssh集成框架简述2.1 strutsstruts是通过采用javaservlet/jsp技术,实现了基于java eeweb应用的mvc设计模式的应用框架。使用struts可以减少我们在运用mvc设计模型来开发web应用的时间。在服务器启动后,struts根据web.xml加载actionservlet读取struts-config.xml文件内容到内存3 。 2.2 springspring是为了解决企业应用开发的复杂性而创建的。spring是基于javabean来完成以前只可能由ejb完成的事情。spring的用途不仅用于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益4 。2.3 hibernatehibernate是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库。 hibernate可以应用在任何使用jdbc的场合,既可以在java的客户端程序使用,也可以在javaservlet/jsp的web应用中使用,最具革命意义的是,hibernate可以在应用ejb的java应用中。3 ssh集成框架业务逻辑的实现方法以上简单介绍了struts,spring,hibernate它们各自的实现方式,然而将它们整合在一起,又是如何实现业务逻辑的呢?执行效果又如何呢?可想而知,整合后的框架会更强大,执行效率会更快。基于分开的三大框架,集成后的框架便是质的飞跃!在实现业务逻辑时,hibernate主要执行以下操作:首先通configuration().configure()读取并解析hibernate.cfg.xml配置文件,再由hibernate.cfg.xml中的读取并解析映射信息,然后通过config buildsessionfactory()代码以创建sessionfactory,再执行sessionfactory.opensession()打开session,接下来执行session begintransaction()创建transaction事务,再通过persistent operate 实现持久化操作,最后通过session.gettransaction().commit()提交事务,然后关闭session,关闭sesstionfactory。在hibernate实现了它所应负责的业务逻辑的同时还要处理一个很重要的问题:加载和缓存问题。那么hibernate如何完成这些要求的呢? hibernate通过如下操作延迟加载:在hibernate2中通过操作实体对象和集合延迟加载;hibernate3中提供了属性的延迟加载功能。当hibernate在查询数据的时候,数据并没有存在于内存中,当程序真正对数据进行操作时,对象才存在于内存中,这样实现了延迟加载,它节省了服务器的内存开销,从而提高了服务器的性能。最后谈论下hibernate的缓存机制。首先介绍一些缓存的概念:内部缓存存在hibernate中又叫一级缓存,属于应用事务级别缓存;应用缓存及分布式缓存称为二级缓存,其中分布式缓存是指:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被频繁使用的缓存;最后还有三级缓存。接下来具体介绍一下各级缓存:一级缓存是session级的缓存也叫事务级的缓存,只缓存实体,生命周期和session一致,不能对其进行管理,不用显式地调用;二级缓存是sessionfactory缓存也叫做进程级缓存,使用第三方插件实现,也是只缓存实体,生命周期和sessionfactory一致,可以进行管理。其中用到了第三方插件,我们用ehcache可以先在hibernate.cfg.xml文件中加入true,同时在映射中也要显式地调用在二级缓存中,如果关联的表发生了修改,那么查询缓存的生命周期也结束了。如果要再次查询该表,就要在程序中手动启用查询缓存: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主要执行的操作是:spring mvc将所有的请求都提交给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处理。管理服务组件的spring ioc容器负责向action提供业务模型(model)组件和该组件的协作对象数据处理(dao)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。最后依赖hibernate的对象化映射和数据库交互,处理dao组件请求的数据,并返回处理结果 9。结 论通过上面的论述,我们对业务逻辑和ssh集成框架有了初步的了解,并学习了ssh实现业务逻辑的方法:使用struts作为系统的整体基础架构,负责mvc的分离,在struts框架的模型部分,控制业务跳转,利用hibernate框架对持久层提供支持,spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的java对象,然后编写基本的dao(data access objects)接口,并给出hibernate的dao实现,采用hibernate架构实现的dao类来实现java类与数据库之间的转换和访问,最后由spring做管理,管理struts和hibernate。基于ssh集成框架,我们不仅可以提高开发效率,优化代码结构,也提高了代码的执行效率和系统的质量,而且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。ssh集成框架帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的web应用程序。所以ssh集成框架是值得我们深入了解的技术。参考文献1 李刚.轻量级j2ee企业应用实战-struts+spring+hibernate整合开发m.北京:电子工业出版社,2007.4.158-1592 曹晓钢,唐勇,夏昕. 深入浅出hibernatem. 北京:电子工业出版社,2005.63 林信良. spring2.0技术手册m. 北京:电子工业出版社,2002.32-384 沃尔斯. spring in actionm. 北京:人民邮电出版社, 2006.3.56-595 程杰. 大话设计模式m. 北京:清华大学出版社,2007.12 .48-496 孙卫琴. java面向对象编程m:北京:电子工业出版社, 2006.7 .168-1727 阎宏. java与模式m: 电子工业出版社, 2002.10.88-968 郭峰. 我的j2ee成功之路m: 电子工业出版社, 2009.11.108-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西百色西林县那劳镇人民政府招聘编外聘用人员1人考试笔试备考题库及答案解析
- 2025海南琼中黎族苗族自治县皮肤性病与精神卫生防治中心招聘公益性岗位人员2人考试笔试参考题库附答案解析
- 2026天津农商银行校园招聘笔试考试备考题库及答案解析
- 2025年攀枝花市仁和区辅警招聘考试题库附答案解析
- 2025银川市第二人民医院社区卫生服务机构自主招聘50人笔试考试参考题库及答案解析
- 2025内蒙古鄂尔多斯诃额伦社区卫生服务中心招聘2人考试笔试备考试题及答案解析
- 2025福建漳州市南靖生态环境局招聘1人考试笔试参考题库附答案解析
- 2025年四川省凉山州昭觉县辅警招聘考试题库附答案解析
- 2025年二级建造师考试矿业工程管理与实务重点难点解析试卷
- 2025年江西省南昌市西湖区辅警招聘考试题库附答案解析
- 在线网课知慧《大凉山精准脱贫(西昌学院)》单元测试考核答案
- 《关于中国共产党党费收缴、使用和管理的规定》学习解读
- 中国动画赏析
- 新会陈皮培训课件
- 大数据技术求职个人简历模板
- 营养指导员理论考试题库及答案
- 西华大学理工类实验报告和封面
- 广东深圳市坪山区委宣传部下属事业单位招聘工作人员(共500题含答案解析)笔试历年难、易错考点试题含答案附详解
- 肿瘤科降低输液外渗发生率品管圈PDCA成果汇报
- 普通地质学教材
- 2022年湖北省药品监督管理局审评中心招聘笔试备考题库及答案解析
评论
0/150
提交评论