<tx:advice/> 设置

本节总结了可以使用 <tx:advice/> 标签指定的各种事务设置。默认的 <tx:advice/> 设置如下:

  • 传播设置 (propagation setting) 为 REQUIRED

  • 隔离级别为 DEFAULT

  • 事务为读写。

  • 事务超时默认为底层事务系统的默认超时,如果不支持超时则为无。

  • 任何 RuntimeException 都会触发回滚,而任何 checked Exception 则不会。

你可以更改这些默认设置。下表总结了嵌套在 <tx:advice/><tx:attributes/> 标签内的 <tx:method/> 标签的各种属性:

表 1. <tx:method/> 设置
属性 必需? 默认值 描述

name

与事务属性关联的方法名。可以使用通配符 (*) 将相同的事务属性设置与多个方法关联(例如,get*handle*on*Event 等)。

propagation

REQUIRED

事务传播行为。

isolation

DEFAULT

事务隔离级别。仅适用于 REQUIREDREQUIRES_NEW 传播设置。

timeout

-1

事务超时(秒)。仅适用于 REQUIREDREQUIRES_NEW 传播。

read-only

false

读写事务与只读事务。仅适用于 REQUIREDREQUIRES_NEW

rollback-for

逗号分隔的 Exception 实例列表,这些实例会触发回滚。例如,com.foo.MyBusinessException,ServletException

no-rollback-for

逗号分隔的 Exception 实例列表,这些实例不会触发回滚。例如,com.foo.MyBusinessException,ServletException