logo

Frühlings-AOP-Tutorial

  1. Was ist AOP?
  2. Wo wird AOP eingesetzt?
  3. AOP-Konzepte und Terminologie
  4. Spring AOP-Implementierung

Aspektorientierte Programmierung (AOP) ergänzt OOPs in dem Sinne, dass es auch Modularität bietet. Die Schlüsseleinheit der Modularität ist jedoch der Aspekt und nicht die Klasse.

AOP unterteilt die Programmlogik in verschiedene Teile (sogenannte Bedenken). Es wird verwendet, um die Modularität zu erhöhen Querschnittsthemen .

A übergreifendes Anliegen ist ein Problem, das sich auf die gesamte Anwendung auswirken kann und möglichst an einer Stelle im Code zentralisiert werden sollte, z. B. Transaktionsverwaltung, Authentifizierung, Protokollierung, Sicherheit usw.


Warum AOP verwenden?

Es bietet die steckbare Möglichkeit, das zusätzliche Problem dynamisch vor, nach oder um die eigentliche Logik herum hinzuzufügen. Angenommen, es gibt 10 Methoden in einer Klasse, wie unten angegeben:

 class A{ public void m1(){...} public void m2(){...} public void m3(){...} public void m4(){...} public void m5(){...} public void n1(){...} public void n2(){...} public void p1(){...} public void p2(){...} public void p3(){...} } 

Es gibt 5 Methoden, die bei m beginnen, 2 Methoden, die bei n beginnen, und 3 Methoden, die bei p beginnen.

Szenario verstehen Ich muss das Protokoll verwalten und eine Benachrichtigung senden, nachdem ich Methoden aufgerufen habe, die bei m beginnen.

Problem ohne AOP Wir können Methoden (die das Protokoll verwalten und Benachrichtigungen senden) von den Methoden aus aufrufen, die mit m beginnen. In einem solchen Szenario müssen wir den Code in allen fünf Methoden schreiben.

Wenn der Kunde jedoch in Zukunft sagt, dass ich keine Benachrichtigung mehr senden muss, müssen Sie alle Methoden ändern. Dies führt zu Wartungsproblemen.

Lösung mit AOP Wir müssen keine Methoden aus der Methode aufrufen. Jetzt können wir die zusätzlichen Anliegen wie Protokollführung, Senden von Benachrichtigungen usw. in der Methode einer Klasse definieren. Sein Eintrag ist in der XML-Datei angegeben.

Wenn der Kunde in Zukunft sagt, dass er die Notifier-Funktionalität entfernen soll, müssen wir nur die XML-Datei ändern. Daher ist die Wartung in AOP einfach.

Wasserzeichen in Word

Wo wird AOP eingesetzt?

AOP wird hauptsächlich in folgenden Fällen eingesetzt:

  • Bereitstellung deklarativer Unternehmensdienste wie deklarativer Transaktionsverwaltung.
  • Es ermöglicht Benutzern, benutzerdefinierte Aspekte zu implementieren.

AOP-Konzepte und Terminologie

AOP-Konzepte und Terminologien lauten wie folgt:

  • Verbindungspunkt
  • Beratung
  • Pointcut
  • Einführung
  • Zielobjekt
  • Aspekt
  • Abfangjäger
  • AOP-Proxy
  • Weberei

Verbindungspunkt

Ein Verbindungspunkt ist ein beliebiger Punkt in Ihrem Programm, z. B. Methodenausführung, Ausnahmebehandlung, Feldzugriff usw. Spring unterstützt nur Verbindungspunkte für die Methodenausführung.


Beratung

Hinweis stellt eine Aktion dar, die von einem Aspekt an einem bestimmten Verbindungspunkt ausgeführt wird. Es gibt verschiedene Arten von Ratschlägen:

  • Vor der Beratung : Es wird vor einem Verbindungspunkt ausgeführt.
  • Nach Rücksendung der Beratung : Es wird ausgeführt, nachdem ein Verbindungspunkt normal abgeschlossen wurde.
  • Nach dem Wurfhinweis : Es wird ausgeführt, wenn die Methode durch Auslösen einer Ausnahme beendet wird.
  • Nach (endlich) Beratung : Es wird nach einem Verbindungspunkt ausgeführt, unabhängig davon, ob der Verbindungspunkt normal oder ausnahmsweise verlassen wird.
  • Rund um Ratschläge : Es wird vor und nach einem Verbindungspunkt ausgeführt.

Pointcut

Es handelt sich um eine Ausdruckssprache von AOP, die Verbindungspunkte abgleicht.


Einführung

Dies bedeutet die Einführung zusätzlicher Methoden und Felder für einen Typ. Es ermöglicht Ihnen, jedem empfohlenen Objekt eine neue Schnittstelle hinzuzufügen.


Zielobjekt

Es ist das Objekt, d. h. die Beratung durch einen oder mehrere Aspekte. Im Frühjahr wird es auch als Proxy-Objekt bezeichnet, da Spring AOP mithilfe von Laufzeit-Proxys implementiert wird.


Aspekt

Es handelt sich um eine Klasse, die Ratschläge, Joinpoints usw. enthält.


Abfangjäger

Es handelt sich um einen Aspekt, der nur einen Ratschlag enthält.


AOP-Proxy

Es wird zur Implementierung von Aspektverträgen verwendet, die vom AOP-Framework erstellt wurden. Im Spring Framework handelt es sich um einen dynamischen JDK-Proxy oder einen CGLIB-Proxy.


Weberei

Dabei handelt es sich um den Prozess der Verknüpfung eines Aspekts mit anderen Anwendungstypen oder Objekten, um ein empfohlenes Objekt zu erstellen. Das Weben kann zur Kompilierungszeit, Ladezeit oder Laufzeit erfolgen. Spring AOP führt das Weben zur Laufzeit durch.

Java-Rückgabebefehl

AOP-Implementierungen

AOP-Implementierungen werden bereitgestellt von:

  1. AspektJ
  2. Frühlings-AOP
  3. JBoss AOP

Frühlings-AOP

Spring AOP kann auf die drei unten aufgeführten Arten verwendet werden. Der am weitesten verbreitete Ansatz ist jedoch der Spring AspectJ Annotation Style. Die drei Möglichkeiten, Spring AOP zu verwenden, sind unten aufgeführt:

  1. Von Spring1.2 Alter Stil (dtd-basiert) (wird auch in Spring3 unterstützt)
  2. Nach AspectJ-Annotationsstil
  3. Nach Spring XML-Konfigurationsstil (schemabasiert)

Referenzlinks

Frühlingsquelle AOP
Spring Source AOP-API
Wikipedia