第十六章Spring事务管理PPT课件_第1页
第十六章Spring事务管理PPT课件_第2页
第十六章Spring事务管理PPT课件_第3页
第十六章Spring事务管理PPT课件_第4页
第十六章Spring事务管理PPT课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、让IT教学更简单,让IT学习更有效Spring事务管理的3个核心接口Spring AOP XML方式Spring AOP Annotation方式第十六章 Spring事务管理让IT教学更简单,让IT学习更有效 学习目标 掌握Spring的基于AOP事务管理方式13了解Spring事务管理的原始方式2熟悉Spring事务管理的3个核心接口掌握了解熟悉让IT教学更简单,让IT学习更有效 目录Spring事务管理的3个核心接口16.116.1TransactionProxyFactoryBean16.216.2Spring AOP XML方式16.316.3Spring AOP Annotatio

2、n方式16.416.4让IT教学更简单,让IT学习更有效为什么使用Spring事务管理? 在实际开发中都会涉及到事务管理的问题,提到事务管理我们常常想到繁复的代码和手动操作,为此,Spring提供了事务管理的API,Spring事务管理简化了传统的事务管理流程,在一定程度上减少了开发者的工作量。本章将针对Spring事务管理进行详细的讲解。16.1 Spring事务管理 的3个核心接口让IT教学更简单,让IT学习更有效 Spring的事务管理是基于AOP实现的,而AOP是以方法为单位。Spring的事务属性分别为传播行为、隔离级别、只读和超时属性,所以这些属性提供了事务应用的方法和描述策略。J

3、avaEE的开发经常采用分层模式,Spring的事务处理位于业务逻辑层并提供了针对性的解决方案。 在Spring解压包的libs目录中, 包含一个名称为spring-tx-3.2.2.RELEASE.jar的文件,该文件是Spring提供的用于事务管理的JAR包,其中包括事务管理的3个核心接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus。16.1 Spring事务管理 的3个核心接口知识点概述让IT教学更简单,让IT学习更有效 将该JAR包的后缀名.jar改成.zip的形式后,解压压缩包,点击进入解压文件

4、夹中的“orgspringframeworktransaction”目录后,该目录中的文件如右图所示。 在上图中,红框标注的3个接口文件就是将要讲解的核心接口,接下来对这三个接口分别进行讲解。16.1 Spring事务管理 的3个核心接口让IT教学更简单,让IT学习更有效PlatformTransactionManager PlatformTransactionManager接口是Spring提供的平台事务管理器,用于管理事务。该接口中提供了三个事务操作方法,具体如下:TransactionStatus getTransaction(TransactionDefinition definiti

5、on ):用于获取事务状态信息。void commit(TransactionStatus status):用于提交事务。void rollback(TransactionStatus status):用于回滚事务。16.1 Spring事务管理 的3个核心接口 在项目中通过xml配置事务的详细信息,Spring将这些信息封装到对象TransactionDefinition中,通过事务管理器的getTransaction()方法获得事务的状态TransactionStatus,就可以对事务进行下一步的操作。让IT教学更简单,让IT学习更有效TransactionDefinition Trans

6、actionDefinition接口是事务定义(描述)对象,提供事务相关信息获取的方法,包括5个操作,具体如下:String getName():获取事务对象名称。int getIsolationLevel():获取事务的隔离级别。int getPropagationBehavior():获取事务的传播行为。int getTimeout():获取事务的超时时间。boolean isReadOnly():获取事务是否只读。16.1 Spring事务管理 的3个核心接口让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效 上述方法中需要注意事务传播行为的概念,是指在同一个方法中,不

7、同操作前后所使用的事务,传播行为的种类如右表所示。 在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务,通常情况下,数据的查询不会影响原数据的改变,所以不需要进行事务管理,而对于数据的增加、修改、删除等操作,必须进行事务管理,如果没有指定事务的传播行为,Spring3默认传播行为是required。16.1 Spring事务管理 的3个核心接口让IT教学更简单,让IT学习更有效TransactionStatus TransactionStatus接口是事务的状态,描述了某一时间点上事务的状态信息,包含6个操作,具体如下:void flush():刷新事务。boolean has

8、Savepoint():获取是否存在保存点。boolean isCompleted():获取事务是否完成。boolean isNewTransaction():获取是否是新事务。boolean isRollbackOnly():获取是否回滚。void setRollbackOnly():设置事务回滚。16.1 Spring事务管理 的3个核心接口让IT教学更简单,让IT学习更有效 Spring的事务管理分为两种方式,分别为声明式事务管理和编程式事务管理。编程式事务管理使用事务管理模板TransactionTemplate手动的管理事务,在实际开发中一般不使用,这里作为了解即可。声明式事务管理是

9、Spring最原始的事务管理方式,我们需要在配置文件中定义数据源和事务管理器,然后把事务管理器注入到TransactionProxyFactoryBean中,设置目标类和事务的相关属性,使用TransactionProxyFactoryBean生成代理,它的优势在于代码中无需关注事务逻辑,而是交给Spring容器进行事务控制。16.2 TransactionProxy FactoryBean 让IT教学更简单,让IT学习更有效 为了帮助读者更好的理解,接下来,我们通过银行转账的案例来讲解如何使用TransactionProxyFactoryBean实现Spring声明式事务管理,请查看教材16

10、.2小节案例。案例代码 案例代码16.2 TransactionProxy FactoryBean 让IT教学更简单,让IT学习更有效16.3 Spring AOP XML方式 在16.2小节中,学习了使用TransactionProxyFactoryBean实现声明式事务管理的方式,这种方式的缺点是配置文件过于臃肿、难以阅读。因此,Spring提供了基于tx/AOP配置的声明式事务管理方式,也是实际开发中最常用的事务管理方式之一。 接下来, 还以16.2小节中的银行转账案例为例,只需修改Spring的配置文件applicationContext.xml。修改后的配置信息,请查看教材16.3小

11、结案例。 案例代码让IT教学更简单,让IT学习更有效16.4 Spring AOP Annotation方式 Spring的声明式事务管理还可以通过Annotation注解的方式,这种方式非常简单,我们需要做两件事情: (1)在Spring容器中注册驱动,代码如下: (2)在需要使用事务的业务类或者方法上添加注解Transactional,这种方式的事务详情是通过Transactional的参数进行配置的,关于Transactional的参数如下图所示。让IT教学更简单,让IT学习更有效 接下来,还是应用银行转账案例进行annotation方式的讲解,请参考教材16.4小节案例。 案例代码 案例代码16.4 Spring AOP Annot

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论