下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring框架的事务管理应用分析摘要介绍了J2EE平台上JavaWeb开发的Spring框架的原理和特性,对其事务管理方面的应用进行了分析。
关键词Spring;J2EE;掌握反转;事务处理
引言
在软件开发中消失过各种各样的框架,开源软件的兴起,使得各种各样的框架纷纷消失,例如,Apache组织下就拥有诸多的框架类产品。框架就是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计。然而,传统的框架使得应用程序组件过分依靠于框架中的类,这种耦合度的提高降低了组件的复用性。Spring框架的消失,使得组件之间更松散的耦合成为了可能。
Spring框架简介
Spring框架是一个2022年2月才消失的开源项目,该开源项目起源自RodJohnson在2022年末出版的《ExpertOne-on-OneJ2EEDesignandDevelopment》一书中的基础性代码。在该书中,RodJohnson提倡J2EE有用主义的设计思想,而Spring框架正是这一思想的更全面和详细的实现。Spring框架由一个容器,一个配置和组织组件的框架,和一组内置的为事务、长久化和Web用户接口供应的服务组成。作为一种轻量级的J2EE框架,Spring供应了一种有效的方式来建立和组织J2EE应用程序。
1、Spring特性
IoC(InversionofControl;掌握反转);又称DI(DependencyInjection;依靠注入);是面对对象领域新兴的编程思想;也是Spring的精髓所在。简洁地说;IoC就是指程序之间的关系由容器来掌握;而不是传统实现中由程序代码直接操控。这也就是所谓“掌握反转”的概念所在:掌握权由应用代码转到外部容器,掌握权的转移,也就是所谓的反转。IoC将掌握创建的职责搬进了框架中;并把它从应用代码脱离开来。当使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC容器会依据XML配置数据供应给它。
SpringIoC,借助于依靠注入设计模式,使得开发者不用理睬对象自身的生命周期极其关系,而且能够改善开发者对模式的使用。对于一个对象的管理不是什么困难,难就难在对整个对象群的管理。依靠注入可以让容器管理对象,即“Don’tcallme,Iwillcallyou”。这样对象本身的生命周期以及对象之间的关系就不再让开发者费神了。
SpringAOP,借助于Spring实现拦截器,开发者能够实现以声名方式使用企业级服务,比如平安性服务、事务服务。AOP合理的补充了OOP,借助于SpringAOP,开发者能够高效的使用J2EE服务。
Spring服务抽象,借助于各种J2EEAPI抽象,使得开发者能够全都地使用J2EE技术,而不管详细是使用什么J2EEAPI,借助于Spring服务抽象,使代码大大削减,满意“更少代码,更少BUG”的软件设计原则。
SpringIoC+SpringAOP+Spring服务抽象,一起形成Spring,这样一个有机体,使构建轻量级J2EE成为可能。
Spring供应的事务管理
Spring供应的事务管理可以分为两类:编程式的和声明式的。编程式的,比较敏捷,但是代码量大,存在重复的代码比较多;声明式的比编程式的更敏捷便利。
1、传统使用JDBC的事务管理
以往使用JDBC进行数据操作,使用DataSource,从数据源中得到Connection,我们知道数据源是线程平安的,而连接不是线程平安的,所以对每个恳求都是从数据源中重新取出一个连接。一般的数据源由容器进行管理,包括连接池。例如TOMCAT,WEBSPHERE,WEBLOGIC等这些J2EE商业容器都供应了这个功能。
以往的我们使用JDBC在写代码时,事务管理可能会是这样:
Connectionconn=null;
try{
conn=DBConnectionFactory.getConnection;
conn.setAutoCommit(false);
//dosomething
mit();//committranscation
}catch(Exceptione){
conn.rollback();
}
finally{
try{
conn.close();
}catch(SQLExceptionse){//dosth.}
//closeResultSet,PreparedStatement,Connection
//notice:MaybeocurrExceptionwhenuclosers,pstmt,conn
}
根据以往的思路来写代码,代码量比较长,而且简单疏忽,忘掉一些try/catch,引发一些特别无法catch,虽然有时候我们会写DBTool类,来关闭这些资源,并且保证在关闭这些资源时,不向外抛特别,但是这样做会导致额外的麻烦。
2、Spring供应的编程式的事务处理
Spring供应了几个关于事务处理的类:TransactionDefinition//事务属性定义
TranscationStatus//代表了当前的事务,可以提交,回滚。
PlatformTransactionManager这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 甘肃起重指挥高阶实操提升考试参考题库-含答案
- 2026广西南宁市青秀区津头街道办事处招聘1人笔试参考题库及答案详解
- 2026年裕民县事业单位人员招聘考试参考题库及答案解析
- 2026年蕲春县网格员招聘考试备考试题及答案解析
- 2026年南澳县中小学幼儿园教师招聘考试模拟试题及答案解析
- 2026年青川县网格员招聘笔试备考试题及答案解析
- 内江市2026年市县增量政策性岗位招募的(454人)考试备考题库及答案详解
- 2026年仙游县网格员招聘笔试参考题库及答案解析
- 2026巧家县老店镇中心卫生院公开招聘乡村医生2人笔试参考题库及答案详解
- 2026年龙江县网格员招聘考试备考试题及答案解析
- 纳米流体压裂技术-洞察及研究
- 幼儿园厨房人员知识培训课件
- 新学期-启航出发-2025-2026学年初一上学期新生开学第一课主题班会
- 中华口腔医学会巴氏刷牙法
- 寄宿制学校一日常规管理规范
- 《农机电器设备使用维护》课件-项目一:农机电气系统基础
- T∕CACM 1318.3-2019 消化系统常见病中医诊疗指南 第3部分:胃食管反流病(基层医生版)
- 浙教版初中信息技术七年级上册全册教学设计
- 诗经《七月》详细教案
- 2025年宿迁市公需考试试题
- 2024年新人教版7年级道德与法治上册全册课件
评论
0/150
提交评论