2 Stimmen

Wie kann man die Methode aus der Transaktionsanzeige ausschließen?

Ich habe die folgende Erklärung:

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

Ich habe von den Transaktionen alle Methoden aus den Pointcut-Mustern eingepackt. Aber ich möchte benutzerdefinierte wrap eine der Methode. Hat Spring.Net Funktionalität der "schwarzen Liste" für tx:advice?

2voto

Marijn Punkte 10067

Ich glaube nicht, dass es eine "Schwarze-Liste"-Funktion in der <tx:advice ... /> Tag. Der Transaktionshinweis wird immer auf die entsprechenden Methoden angewendet.

Ich denke, die Absicht der <tx:attributes ... /> Liste soll angeben, welche Transaktionsattribute verwendet werden sollen (abhängig vom Namen der Methode), nicht um auszuschließen, dass Methoden in eine Transaktion eingeschlossen werden.

Wenn Sie nur an der Anwendung benutzerdefinierter Transaktionseigenschaften einer bestimmten Methode zuzuordnen, kann dies problemlos geschehen. Wenn Sie zum Beispiel Folgendes festlegen möchten read-only=true anstelle des Standardwerts false für VerySpecificMethod :

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

Der erste übereinstimmende Methodenname gibt die Transaktionsattribute an, die jetzt verwendet werden sollen, VerySpecificMethod wird im Rahmen einer Nur-Lese-Transaktion ausgeführt. Andere Methoden verwenden den Standardwert false .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X