定义事务配置 ‹tx∶advice›

Exisi 2022-11-28 08:39:02
Categories: Tags:

 

<tx:advice>有以下属性:

参数

描述

id

advice bean的标识

transaction-manager

引用一个TransactionManagerbean

示例

<!-- 定义事务的属性(隔离级别,传播行为,事物超时) -->

<tx:advice id="txAdvice" transaction-manager="transactionManager">

</tx:advice>

 

 

 

<tx:method>有以下属性:

参数

描述

name

方法名的匹配模式,通知根据该模式寻找匹配的方法。

该属性可以使用asterisk (*)通配符

  • 使用业务方法的名称
  • 带有通配符的业务方法的名称
  • 直接使用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>