Eine der Schlüsselkomponenten von Spring Framework ist das Aspect Oriented Programming (AOP) Framework. Aspektorientierte Programmierung beinhaltet die Aufschlüsselung der Programmlogik in verschiedene Teile, die als sogenannte Bedenken bezeichnet werden. Die Funktionen, die sich über mehrere Punkte einer Anwendung erstrecken, werden als Querschnittsanliegen bezeichnet, und diese Querschnittsanliegen sind konzeptionell von der Geschäftslogik der Anwendung getrennt., Es gibt verschiedene gemeinsame gute Beispiele für Aspekte wie Protokollierung, Auditing, deklarative Transaktionen, Sicherheit, Caching usw.
Die Schlüsseleinheit der Modularität in OOP ist die Klasse, während in AOP die Einheit der Modularität der Aspekt ist. Dependency Injection hilft Ihnen dabei, Ihre Anwendungsobjekte voneinander zu entkoppeln, und AOP hilft Ihnen dabei, Querschnittsprobleme von den Objekten zu entkoppeln, die sie betreffen. AOP ist wie Trigger in Programmiersprachen wie Perl,. NET, Java und anderen.
Spring Das AOP-Modul bietet Abfangjäger zum Abfangen einer Anwendung., Wenn beispielsweise eine Methode ausgeführt wird, können Sie zusätzliche Funktionen vor oder nach der Methodenausführung hinzufügen.
AOP-Terminologien
Bevor wir mit der Arbeit mit AOP beginnen, sollten wir uns mit den AOP-Konzepten und-Terminologien vertraut machen. Diese Begriffe sind nicht spezifisch für Spring, sondern beziehen sich auf AOP.
Sr. No | Begriffe & Beschreibung |
---|---|
1 |
Aspect Dies ist ein Modul, das eine Gruppe von APIs, die eine cross-cutting Anforderungen., Zum Beispiel würde ein Protokollierungsmodul AOP Aspekt für die Protokollierung genannt werden. Eine Anwendung kann je nach Anforderung eine beliebige Anzahl von Aspekten haben. |
2 |
Join point Dies stellt einen Punkt in Ihrer Anwendung dar, an dem Sie den AOP-Aspekt einfügen können. Sie können auch sagen, dass es der tatsächliche Ort in der Anwendung ist, an dem eine Aktion mit Spring AOP Framework ausgeführt wird. |
3 |
3 Dies ist die eigentliche Aktion, die entweder vor oder nach der Methodenausführung ausgeführt wird., Dies ist ein tatsächlicher Code, der während der Programmausführung von Spring AOP Framework aufgerufen wird. |
4 |
Pointcut Dies ist ein Satz von einem oder mehreren join-Punkte, in denen eine Beratung, die ausgeführt werden soll. Sie können Pointcuts mit Ausdrücken oder Mustern angeben, wie wir in unseren AOP-Beispielen sehen werden. |
5 |
Einführung Mit einer Einführung können Sie den vorhandenen Klassen neue Methoden oder Attribute hinzufügen. |
6 |
Zielobjekt Das Objekt wird durch einen oder mehrere Aspekte beraten., Dieses Objekt wird immer ein proxiertes Objekt sein, das auch als das angegebene Objekt bezeichnet wird. |
7 |
Weben Weben ist der Prozess der Verknüpfung von Aspekten mit anderen Anwendungstypen oder Objekten, um ein interaktives Objekt zu erstellen. Dies kann zur Kompilierungszeit, Ladezeit oder zur Laufzeit erfolgen. |
Arten von Beratung
Frühling aspekte können arbeit mit fünf arten von beratung erwähnt wie folgt −
Sr.,Nein | Beratung & Beschreibung |
---|---|
1 |
vor Ausführen-Rat, bevor Sie die Methode der Ausführung. |
2 |
nach Führen Sie Ratschläge nach der Methodenausführung aus, unabhängig von ihrem Ergebnis. |
3 |
nach der Rückkehr Ausführen-Beratung nach der Methode der Ausführung nur, wenn die Methode erfolgreich abgeschlossen wurde. |
4 |
nach-werfen Ausführen-Beratung nach der Methode der Ausführung nur, wenn die Methode beendet durch das werfen einer Ausnahme., |
5 |
um Führen Sie advice vor und nach dem Aufruf der advised Methode aus. |
Implementierung benutzerdefinierter Aspekte
Spring unterstützt den @AspectJ-Annotationsstil und den schemabasierten Ansatz zur Implementierung benutzerdefinierter Aspekte. Diese beiden Ansätze wurden in den folgenden Abschnitten ausführlich erläutert.
Sr.,No | Approach & Description |
---|---|
1 | XML Schema based
Aspects are implemented using the regular classes along with XML based configuration. |
2 | @AspectJ based
@AspectJ refers to a style of declaring aspects as regular Java classes annotated with Java 5 annotations. |