<tx:advice/> 设置
本节总结了您可以使用 <tx:advice/> 标签指定的各种事务设置。默认的 <tx:advice/> 设置如下:
- 传播设置为
REQUIRED。 - 隔离级别为
DEFAULT。 - 该事务为读写事务。
- 事务超时默认采用底层事务系统的默认超时设置;如果底层系统不支持超时,则没有超时设置。
- 任何
RuntimeException都会触发回滚,而任何经过检查的Exception则不会触发回滚。
您可以更改这些默认设置。下表总结了嵌套在 <tx:advice/> 和 <tx:attributes/> 标签内的 <tx:method/> 标签的各种属性:
表1. `
| 属性 | 是否必需? | 默认值 | 说明 |
|---|---|---|---|
name | 是 | 用于关联事务属性的方法名称。可以使用通配符(*)将相同的事务属性设置与多个方法关联起来(例如,get*、handle*、on*Event等)。 | |
propagation | 否 | 必需 | 事务传播行为。 |
isolation | 否 | 默认值 | 事务隔离级别。仅适用于必需(REQUIRED)或需要新建事务(REQUIRES_NEW)的传播设置。 |
timeout | 否 | -1 | 事务超时时间(秒)。仅适用于必需(REQUIRED)或需要新建事务(REQUIRES_NEW)的传播设置。 |
read-only | 否 | false | 读写事务与只读事务。仅适用于必需(REQUIRED)或需要新建事务(REQUIRES_NEW)的设置。 |
rollback-for | 否 | 以逗号分隔的触发回滚的Exception实例列表。例如,com.foo.MyBusinessException,ServletException。 | |
no-rollback-for | 否 | 以逗号分隔的不触发回滚的Exception实例列表。例如,com.foo.MyBusinessException,ServletException。 |