<tx:advice/> 有关的设置

将描述通过 <tx:advice/> 标签来指定不同的事务性设置。默认的 <tx:advice/> 设置如下:

  • 事务传播设置是 REQUIRED
  • 隔离级别是 DEFAULT
  • 事务是 读/写
  • 事务超时默认是依赖于事务系统的,或者事务超时没有被支持。
  • 任何 RuntimeException 将触发事务回滚,但是任何 checked Exception 将不触发事务回滚

这些默认的设置当然也是可以被改变的。 <tx:advice/> 和 <tx:attributes/> 标签里的<tx:method/> 各种属性设置总结如下:

<tx:method/> 有关的设置

属性 是否需要? 默认值 描述
name  
与事务属性关联的方法名。通配符(*)可以用来指定一批关联到相同的事务属性的方法。 如:‘get*‘‘handle*‘‘on*Event‘等等。

propagation REQUIRED 事务传播行为
isolation DEFAULT 事务隔离级别
timeout -1 事务超时的时间(以秒为单位)
read-only false 事务是否只读?
rollback-for  
将被触发进行回滚的 Exception(s);以逗号分开。 如:‘com.foo.MyBusinessException,ServletException‘

no-rollback-for  
 被触发进行回滚的 Exception(s);以逗号分开。 如:‘com.foo.MyBusinessException,ServletException‘

Spring中propagation类的事务属性详解

    1. PROPAGATION_REQUIRED:         支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 
    2. PROPAGATION_SUPPORTS:         支持当前事务,如果当前没有事务,就以非事务方式执行。 
    3. PROPAGATION_MANDATORY:      支持当前事务,如果当前没有事务,就抛出异常。 
    4. PROPAGATION_REQUIRES_NEW:   新建事务,如果当前存在事务,把当前事务挂起。
    5.  PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 
    6. PROPAGATION_NEVER:               以非事务方式执行,如果当前存在事务,则抛出异常。 
    7. PROPAGATION_NESTED:              支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务
时间: 2024-12-11 14:23:59

<tx:advice/> 有关的设置的相关文章

Spring的声明式事务管理&lt;tx:advice/&gt; 有关的设置

<tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事务是 读/写 事务超时默认是依赖于事务系统的,或者事务超时没有被支持. 任何 RuntimeException 将触发事务回滚,但是任何 checked Exception 将不触发事务回滚 这些默认的设置当然也是可以被改变的. <tx:advi

The prefix "tx" for element "tx:advice" is not bou

The prefix "tx" for element "tx:advice" is not bound 这个错误的原因很简单是: 我们在定义申明AOP的时候..没有加载schema. 具体表现如下: <beans> <tx:advice id="txAdvice" transaction-manager="transactionManager">         <tx:attributes&g

tx:advice

1 <tx:advice id="txAdvice" transaction-manager="transactionManager"> 2 <tx:attributes> 3 <tx:method name="get*" propagation="SUPPORTS" isolation="DEFAULT" 4 read-only="true" />

Spring源码情操陶冶-tx:advice解析器

承接Spring源码情操陶冶-自定义节点的解析.本节关于事务进行简单的解析 spring配置文件样例 简单的事务配置,对save/delete开头的方法加事务,get/find开头的设置为不加事务只读模式 <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*"

Spring4 -12 -声明式事务及完整的XML配置文件信息 -声明式事务中的相关属性(tx:advice的标签)

1.编程式事务: 1.1由程序员编程事务控制代码. 1.2OpenSessionInView 就属于编程式事务: session.commit()和rollback() 2.声明式事务: 2.1事务控制代码已经由spring 写好.程序员只需要声明出哪些方法需要进行事务控制和如何进行事务控制. 3.声明式事务都是针对于ServiceImpl 类下方法的. 4.事务管理器基于通知(advice)的. 5.在spring 配置文件中配置声明式事务 完整地XML配置文件信息: <context:pro

Spring AOP Schema aop:config、tx:advice

Spring AOP Schema  aop:config.tx:advice 一.      利用aop:config标签实现AOP 首先看个例子,如下 接口代码: package com.lei.demo.aop.schema; public interface IHello { public void sayHello(); } 接口实现: package com.lei.demo.aop.schema; public class HelloService implements IHell

spring中&lt;tx:advice&gt;&lt;/tx:advice&gt;是什么意思

<tx:advice id="tv" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> 这段话是什么意思 意思是这个事物advice的管理者为tr

[转]spring中&lt;tx:advice&gt;&lt;/tx:advice&gt;意义

<tx:advice id="tv" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED"/> </tx:attributes> </tx:advice>这段话是什么意思? 意思是这个事物advice的管理者为tr

spring声明式事务配置详解

spring声明式事务配置详解 君子不器 2013年06月16日 编程世界 5273次阅读 查看评论 理解Spring的声明式事务管理实现 本节的目的是消除与使用声明式事务管理有关的神秘性.简单点儿总是好的,这份参考文档只是告诉你给你的类加上@Transactional注解,在配置文件中添加('<tx:annotation-driven/>')行,然后期望你理解整个过程是怎么工作的.此节讲述Spring的声明式事务管理内部的工作机制,以帮助你在面对事务相关的问题时不至于误入迷途,回朔到上游平静