<tx:advice/> 设置
本节总结了您可以使用 <tx:advice/> 标签指定的各种事务设置。默认的 <tx:advice/> 设置如下:
-
传播设置 为
REQUIRED。 -
隔离级别为
DEFAULT。 -
事务为读写事务。
-
事务超时默认为底层事务系统的默认超时时间,如果不支持超时则无超时设置。
-
任何
RuntimeException都会触发回滚,而任何检查型Exception则不会。
你可以更改这些默认设置。下表总结了嵌套在 <tx:advice/> 和 <tx:attributes/> 标签中的 <tx:method/> 标签的各种属性:
表 1. <tx:method/> 设置
| 属性 | 是否必填? | 默认值 | 描述 |
|---|---|---|---|
name | 是 | 要与事务属性关联的方法名称。可以使用通配符(*)字符将相同的事务属性设置与多个方法关联(例如 get*、handle*、on*Event 等)。 | |
propagation | 否 | REQUIRED | 事务传播行为。 |
isolation | 否 | DEFAULT | 事务隔离级别。仅适用于传播设置为 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。 |