English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spring AOP

Aspect Oriented Programming(AOP) ist in gewisser Weise eine Ergänzung zur OOP, da es auch modulare Funktionen bietet. Allerdings ist der Schlüsselkern der Modularisierung die Seite und nicht die Klasse.

AOP teilt die Programmlogik in verschiedene Teile (bezeichnet als Aufmerksamkeit) ein. Es wird verwendet, um Fachübergreifende Aufmerksamkeitum die Modularität zu verbessern.

cross-cutting concernsEin Aspekt, der die gesamte Anwendung beeinflusst, sollte so weit wie möglich in einem zentralen Codebereich konzentriert werden, z.B. Transaktionsverwaltung, Authentifizierung, Protokollierung, Sicherheit usw.


Warum AOP verwenden?

Es bietet eine einsetzbare Möglichkeit, zusätzliche Aspekte vor, nach oder um die tatsächliche Logik dynamisch hinzuzufügen. Angenommen, eine Klasse hat10Methoden, wie folgt:

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(){...}
}

Dieses Verfahren, das mit m beginnt5Dieses Verfahren, das mit n beginnt2Dieses Verfahren, das mit p beginnt3Dieses Verfahren.

Verstehen Sie die SituationIch muss Protokoll führen und Benachrichtigungen senden

Probleme ohne AOPWir können Methoden aufrufen, die mit m beginnen (Wartung protokollieren und Benachrichtigungen senden). In diesem Fall müssen wir alle5Dieses Verfahren, um Code zu schreiben.

Wenn der Kunde jedoch später sagt, dass er die Benachrichtigung nicht senden muss, müssen alle Methoden geändert werden. Dies führt zu Wartungsproblemen.

AOP-LösungWir müssen nicht von einer Methode aus eine andere Methode aufrufen. Jetzt können wir andere Aspekte in den Methoden der Klasse definieren, wie z.B. das Protokollieren von Wartung, das Senden von Benachrichtigungen usw. Die Einträge sind im XML-Dokument angegeben.

In der Zukunft, wenn der Kunde sagt, dass er die Funktion der Benachrichtigung löschen möchte, müssen wir nur die Änderungen im XML-Dokument vornehmen. Daher ist die Wartung in AOP einfach.

Wo wird AOP verwendet?

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

Es bietet deklarative Unternehmensdienste, wie z.B. deklarative Transaktionsverwaltung. Es ermöglicht es dem Benutzer, benutzerdefinierte Aspekte zu implementieren.

Konzepte und Begriffe von AOP

Die Konzepte und Begriffe von AOP lauten wie folgt:

Join point Advice Pointcut Introduction Target Object Aspect Interceptor AOP Proxy Weaving

Join point

Join point ist jeder Punkt im Programm, zum Beispiel die Ausführung einer Methode, das Verarbeiten von Ausnahmefehlern, den Zugriff auf Felder usw. Spring unterstützt nur Join point der Methodesausführung.

Advice

Advice bedeutet die Operation, die der Aspect an einem bestimmten Join point durchführt. Es gibt verschiedene Arten von Advice:

Before Advice: Es wird vor dem Join point ausgeführt. After Returning Advice: Es wird ausgeführt, wenn der Join point normal abgeschlossen wird. After Throwing Advice: Wenn eine Methode aufgrund eines Ausnahmefehlers beendet wird, wird sie ausgeführt. After (finally) Advice: Es wird nach dem Join point ausgeführt, egal ob der Join point normal zurückgeht oder einen Ausnahmefehler zurückgibt. Around Advice: Es wird vor und nach dem Join point ausgeführt.

Pointcut

Es ist eine Ausdruckslanguage für AOP, die mit Join point übereinstimmt.

Introduction

This means introducing other methods and fields of the type. It allows you to introduce new interfaces to any advised object.

Target Object

This is an object that contains one or more aspect advices. In Spring, it is also called a proxy object because Spring AOP is implemented using runtime proxies.

Aspect

This is a class that contains advice, join points, etc.

Interceptor

This is an aspect that contains only one advice.

AOP Proxy

It is used to implement the aspect contracts created by the AOP framework. In the Spring framework, it will be the JDK dynamic proxy or CGLIB proxy.

Weaving

This is the process of linking aspects with other application types or objects to create advised objects. Weaving can be done at compile time, load time, or runtime. Spring AOP performs weaving at runtime.

AOP Implementation

The AOP implementation is provided by the following:

AspectJ SpringAOP JBoss AOP

Spring AOP

Spring AOP can be used in the following three ways. However, the widely used method is the Spring AspectJ annotation style. The following gives an example of using Spring AOP.3Methods:

Adopting Spring1.2Old style (based on dtd) (in Spring3is also supported) Using AspectJ annotation style Using Spring XML configuration style (based on schema)