本节总结了你可以通过使用 <tx:advice/>
标签指定的各种事务性设置。默认的 <tx:advice/>
设置是:
- 传播设置是 REQUIRED。
- 隔离级别是 DEFAULT。
- 事务是读-写的。
- 事务超时默认为底层事务系统的默认超时,如果不支持超时,则为无。
- 任何 RuntimeException 都会触发回滚,而任何已检查的 Exception 都不会( 任何不是 RuntimeException 或 Error 的子类的 Throwable 子类都被视为已检查异常。)
你可以改变这些默认设置。下表总结了嵌套在 <tx:advice/>
和 <tx:attribute/>
标签中的 <tx:method/>
标签的各种属性:
Attribute / 属性 | Required? / 是否必须 | Default / 默认值 | Description / 描述 |
---|---|---|---|
name | Yes | 事务属性要与之相关联的方法名称。通配符(* )可以用来将相同的事务属性设置与许多方法联系起来(例如,get* 、handle* 、on*Event ,等等)。 |
|
propagation | No | REQUIRED | 事务传播行为。 |
isolation | No | DEFAULT | 事务隔离级别。只适用于传播设置为 REQUIRED 或REQUIRES_NEW 的情况。 |
timeout | No | -1 | 事务超时(秒)。只适用于传播 REQUIRED 或REQUIRES_NEW。 |
read-only | No | false | 读写事务与只读事务。只适用于 REQUIRED 或 REQUIRES_NEW。 |
rollback-for | No | 以逗号分隔的触发回滚的 Exception 实例的列表。例如,com.foo.MyBusinessException,ServletException 。 |
|
no-rollback-for | No | 以逗号分隔的不触发回滚的 Exception 实例列表。例如,com.foo.MyBusinessException,ServletException 。 |