- tx:advice标签用于定义事务的属性(隔离级别,传播行为,事物超时)
<tx:advice>有以下属性:
参数 |
描述 |
id |
advice bean的标识 |
transaction-manager |
引用一个TransactionManager的bean |
示例
<!-- 定义事务的属性(隔离级别,传播行为,事物超时) -->
<tx:advice id="txAdvice" transaction-manager="transactionManager"> </tx:advice> |
- <tx:attributes>是</tx:advice>的子标签用于定义事务的属性
- <tx:attributes>下有一个<tx:method>子标签用于定义具体事务需要的属性
<tx:method>有以下属性:
参数 |
描述 |
name |
方法名的匹配模式,通知根据该模式寻找匹配的方法。 该属性可以使用asterisk (*)通配符
|
propagation |
设定事务定义所用的传播级别 |
isolation |
设定事务的隔离级别 |
timeout |
指定事务的超时(单位为秒) |
read-only |
该属性为true指示事务是只读的(典型地, 对于只执行查询的事务你会将该属性设为true, 如果出现了更新、插入或是删除语句时只读事务就会失败) |
no-rollback-for |
以逗号分隔的异常类的列表,目标方法可以抛出 这些异常而不会导致通知执行回滚 |
rollback-for |
以逗号分隔的异常类的列表,当目标方法抛出这些 异常时会导致通知执行回滚。默认情况下,该列表为空, 因此不在no-rollback-for列表中的任何运行 时异常都会导致回滚 |
示例
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 定义事务的属性(隔离级别,传播行为,事物超时) -->
<tx:method name="get" propagation="SUPPORTS" isolation="DEFAULT" read-only="true" />
<tx:method name="find*" propagation="SUPPORTS" isolation="DEFAULT" read-only="true" />
<tx:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception" />
</tx:attributes>
</tx:advice>