2011-01-16 4 views
8

Nach der Überprüfung des AOP-Musters, ich bin überwältigt von der Art und Weise, wie und was sie verwenden, um in meinem Frühjahr Projekt.Was die häufigste Verwendung für AOP im Frühjahr Projekt

Ich möchte es als Audit-Log-System aller finanziellen Geschäftslogik verwenden. Es scheint einfach zu sein, zu integrieren. Aber ich würde gerne Ihre Meinung dazu hören.

Die Frage ist - was für andere Zwecke sollte ich beachten, die für dieses Muster gemeinsam sind? Es würde mir nichts ausmachen, meine derzeitige Logik so umzuformulieren, dass sie mit AOP verwendet werden kann, solange es Vorteile bringt.

+2

Es gibt eine, ein bisschen ähnliche Frage: "Was ist Aspect J gut für". Diese http://stackoverflow.com/questions/4313789/what-is-aspectj-good-for – Ralph

Antwort

9

Die häufigste Anwendung ist wahrscheinlich die deklarative Transaktion @Transactional Umgang mit.

7

Neben Logging/Auditing und deklarative Transaktion von Axel erwähnt Handhabung, würde ich eine andere Verwendung von AOP sagen als Anforderung Interceptor ist. Angenommen, Sie möchten, dass alle Anforderungen eines Servers abgefangen werden, damit Sie etwas damit tun können (z. B. um zu verfolgen, welche App welche Anfrage an welche andere App bzw. welche Datenbank sendet usw.).

+0

ist auch möglich, mit HandlerInterceptor und HandlerInterceptorAdoptor – Prateek

1

Die Verwendung von AOP für Audit-Logging ist eine perfekt gültige Verwendung von AOP. Sie können es zum Testen deaktivieren und ändern, wenn sich die Anforderungen in der Produktion ändern.

Der einzige Nachteil in diesem Fall ist, wenn du tut, das Audit-Protokoll über SQL vorhatten. Es kann leistungsfähiger sein, diese Art der Überwachung als Trigger direkt in der Datenbank zu implementieren.

1

Als Antwort etwas anders aus, was @Axel sagte, es zu benutzen automatisch alle Ihre Datenzugriff Anrufe abfangen und Transaktionen entsprechend anzuwenden ist phänomenal. Ich habe meine eingerichtet, um alle Aufrufe meines Dao-Pakets zu implementieren, die nicht mit "get" in einer Transaktion beginnen, und dann wird alles, was in einer Methode ausgeführt wird, die mit "get" beginnt, als schreibgeschützt behandelt. Es ist fantastisch, denn abgesehen von der anfänglichen Einrichtung muss ich mich nicht darum kümmern, sondern folge einfach der Namenskonvention.

2

Sie können AOP für Ihre Sicherheitsanliegen verwenden, z. B. den Zugriff auf Methoden erlauben/verweigern. Eine weitere Anwendung von aop ist das Testen der Anwendungsleistung.

+1

Für/dissalow Methode Zugriff Ausführung erlauben Ich denke, dass Spring Security bessere Wahl als AOP ist. –

7

Die häufigste Verwendung ist, wo Ihre Anwendung Querschnittsthemen heißt ein Stück Logik oder Code hat, die in mehreren Klassen/Schichten geschrieben werden wird.

Und dies könnte je nach Ihren Bedürfnissen variieren. Einige sehr häufige Beispiele hierfür könnten sein:

  1. Transaction Management
  2. Logging
  3. Ausnahmebehandlung (vor allem, wenn Sie detaillierte Spuren haben möchten oder einen Plan haben, erholt sich von Ausnahmen)
  4. Sicherheitsaspekte
  5. Instrumentation

Hoffnung, das hilft.