如何从交易建议中排除方法?

时间:2011-05-20 13:31:42

标签: c# nhibernate transactions aop spring.net

我有以下声明:

  <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
      <tx:method name="*"/>
    </tx:attributes>
  </tx:advice>

我将切入模式中的所有方法包含在事务中。 但我想要自定义换行方法之一。 是否有针对tx:advice的“黑名单”的Spring.Net功能?

1 个答案:

答案 0 :(得分:2)

我认为<tx:advice ... />标记中没有“黑名单”功能。交易建议将始终应用于匹配方法。

我认为<tx:attributes ... />列表的意图是指定要使用哪些事务属性(取决于方法的名称),不要排除方法包装在事务中。

如果您只对将自定义事务属性应用于特定方法感兴趣,则可以轻松完成此操作。例如,如果您要为read-only=true设置false而不是默认值VerySpecificMethod

<tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
    <tx:method name="VerySpecificMethod" read-only="true"/>
    <tx:method name="*"/>
  </tx:attributes>
</tx:advice>

第一个匹配的方法名称将指定要使用的事务属性,因此,VerySpecificMethod将在只读事务中执行。其他方法将使用默认值false