豆搜网 文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > IT/计算机 > spring事务管理
侵权投诉

spring事务管理

spring事务管理

9.5. 声明式事务管理

大多数Spring用户选择声明式事务管理。这是对应用代码影响最小的选择,因此也最符合 非侵入式 轻量级容器的理念。

Spring的声明式事务管理是通过Spring AOP实现的,因为事务方面的代码与Spring绑定并以一种样板式风格使用,不过尽管如此,你一般并不需要理解AOP概念就可以有效地使用Spirng的声明式事务管理。 从考虑EJB CMT和Spring声明式事务管理的相似以及不同之处出发是很有益的。它们的基本方法是相似的:都可以指定事务管理到单独的方法;如果需要可以在事务上下文调用 setRollbackOnly() 方法。不同之处在于:

不像EJB CMT绑定在JTA上,Spring声明式事务管理可以在任何环境下使用。只需更改配置文

件,它就可以和JDBC、JDO、Hibernate或其他的事务机制一起工作。

Spring的声明式事务管理可以被应用到任何类(以及那个类的实例)上,不仅仅是像EJB那样的

特殊类。

Spring提供了声明式的回滚规则:EJB没有对应的特性,我们将在下面讨论。回滚可以声明式的

控制,不仅仅是编程式的。

Spring允许你通过AOP定制事务行为。例如,如果需要,你可以在事务回滚中插入定制的行为。

你也可以增加任意的通知,就象事务通知一样。使用EJB CMT,除了使用

setRollbackOnly(),你没有办法能够影响容器的事务管理。

Spring不提供高端应用服务器提供的跨越远程调用的事务上下文传播。如果你需要这些特性,我

们推荐你使用EJB。然而,不要轻易使用这些特性。通常我们并不希望事务跨越远程调用。

TransactionProxyFactoryBean在哪儿?

Spring2.0及以后的版本中声明式事务的配置与之前的版本有相当大的不同。主要差异在于不再需要配置TransactionProxyFactoryBean了。

Spring2.0之前的旧版本风格的配置仍然是有效的;你可以简单地认为新的<tx:tags/>替你定义了TransactionProxyFactoryBean。

回滚规则的概念比较重要:它使我们能够指定什么样的异常(和throwable)将导致自动回滚。我们在配置文件中声明式地指定,无须在Java代码中。同时,我们仍旧可以通过调用 TransactionStatus 的 setRollbackOnly() 方法编程式地回滚当前事务。通常,我们定义一条规则,声明

MyApplicationException 必须总是导致事务回滚。这种方式带来了显著的好处,它使你的业务对象不必依赖于事务设施。典型的例子是你不必在代码中导入Spring API,事务等。

对EJB来说,默认的行为是EJB容器在遇到 系统异常(通常指运行时异常)时自动回滚当前事务。EJB CMT遇到 应用异常(例如,除了 java.rmi.RemoteException 外别的checked exception)时并不会自动回滚。默认式Spring处理声明式事务管理的规则遵守EJB习惯(只在遇到unchecked exceptions时自动回滚),但通常定制这条规则会更有用。

9.5.1. 理解Spring的声明式事务管理实现

本节的目的是消除与使用声明式事务管理有关的神秘性。简单点儿总是好的,这份参考文档只是告诉你给你的类加上@Transactional注解,在配置文件中添加('<tx:annotation-driven/>')行,然后期望你理解整个过程是怎么工作的。此节讲述Spring的声明式事务管理内部的工作机制,以帮助你在面对事务相关的问题时不至于误入迷途,回朔到上游平静的水域。

提示

阅读Spring源码是理解清楚Spring事务支持的一个好方法。Spring的Javadoc提供的信息丰富而完整。我们建议你在开发自己的Spring应用时把日志级别设为'DEBUG'级,这样你能更清楚地看到幕后发生的事。

在理解Spring的声明式事务管理方面最重要的概念是:Spring的事务管理是通过AOP代理实现的。其中的事务通知由元数据(目前基于XML或注解)驱动。代理对象与事务元数据结合产生了一个AOP代理,

第1页

你可能喜欢

  • spring注解
  • struts2教程
  • Linux系统命令使用详解
  • 设计模式
  • 开发指南
  • ssh整合
  • 框架整合
  • spring 学习

热门文档

相关文档

  • spring事务管理全解析

    spring 事务管理全解析事务是一组原子(Atomic)操作的工作单元,以数据库存取的实例来说,就是一组 SQL 指令,这一组 SQL 指令必须全部执行成功,若因为某个原因未...

  • Spring事务管理

    Spring事务管理_IT/计算机_专业资料。初学者使用spring事务配置一通常建议采用声明式事务管理。声明式事务管理的优势非常明显:代码中无需关于关注事务逻辑,让Spring...

  • spring事务管理

    Softeem Consultancy Service Spring-事务管理 2011-11-1 主要内容 Softeem Consultancy Service 编程式事务 声明式事务 Spring对Hibernate的集成(两种方式) Spring对...

  • Spring事务管理

    第四章 事务管理 JdbcTemplate 应用程序 接口声明 DAO实现 DB 2 Spring运用了Template-Callback模式, 将固定的流程编写与Template类之中,而 对于不同的细节则委托...

  • Spring事务处理

    Spring事务处理_计算机软件及应用_IT/计算机_专业资料。第十八章 Spring事务管理 课程目标 Spring事务管理的概念 ? Spring事务抽象 ? Spring事务策略 ? Spring提供...

  • Spring2事务管理的两种配置(XML&&标注)

    Spring2事务管理的两种配置(XML&&标注)_IT/计算机_专业资料。Spring2事务管理的两种配置(XML&&标注)package com.epeer.dao; public interface UserDao { public ...

  • Spring事务管理理解分析

    spring 自建事务管理模块。而且这个事务管理是一个抽象设计,可以应用到很 多场合,包括普通的 DataSource,jta,jms 和 hibernate 上。 要正确使用 spring 的事务,...

  • Spring事务管理及与mybatis整合的事务管理

    Spring事务管理及与mybatis整合的事务管理_IT/计算机_专业资料。Spring事务管理及与mybatis整合的事务管理数据访问事务处理 in Spring+Mybatis3.0 事务---保证了...

  • Spring事务管理

    Spring事务策略 Spring事务策略,也就是spring事务管理的实现方式.它有一个统一的抽象是由实现下面这 个接口完成的.org.springframework.transaction.PlatformTransaction...

  • spring事务管理实现

    spring事务管理实现_IT/计算机_专业资料。Spring 提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比较灵活,但是代码量大,存在 重复的代码比较多;...

站点地图 | 文档上传 | 侵权投诉 | 手机版
新浪认证  诚信网站  绿色网站  可信网站   非经营性网站备案
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.docsou.com All Rights Reserved.  闽ICP备15022310号-9  闽公网安备 35021102001881号  email
返回顶部