


Warum löst mein AOP-Aspekt im Frühjahr keine verschachtelten Methodenaufrufe aus?
Fehlerbehebung bei AOP-Fehlern für verschachtelte Methodenaufrufe im Frühjahr
Innerhalb der ABC.java-Klasse sind zwei Methoden definiert: method1() und method2 (). Das Ziel besteht darin, AOP für method2()-Aufrufe zu implementieren.
Ein Ansatz besteht darin, eine AOPLogger.java-Klasse mit einer checkAccess()-Aspektmethode zu erstellen. In der Konfigurationsdatei ist eine Advice-Bean definiert und ein Aspekt so konfiguriert, dass er checkAccess() aufruft, bevor Methode2() aufgerufen wird.
Trotz dieser Konfigurationen wird die Methode checkAccess() jedoch nicht aufgerufen, wenn Methode2( ) wird ausgeführt.
Ursache:
In Spring AOP werden Aspekte auf ein Proxy-Objekt angewendet, das die Bean umgibt. Wenn eine Bean-Instanz abgerufen wird, handelt es sich nicht um die eigentliche Klasse, sondern um eine synthetische Klasse, die Schnittstellen implementiert und Funktionen wie AOP hinzufügt.
Lösung:
Im vorliegenden Szenario method1() ruft direkt method2() auf. Der Aspekt wird nicht ausgelöst, da die Methode nicht für das Proxy-Objekt aufgerufen wird.
Um dieses Problem zu beheben, gibt es zwei Optionen:
- Methode1() und Methode2() aufteilen separate Bohnen. Dadurch kann der Aspekt auf das Proxy-Objekt angewendet werden, das method2() umgibt.
- Verwenden Sie ein nicht Spring-orientiertes AOP-Framework, das nicht auf Proxy-Objektmechanismen basiert.
Erklärung:
Die Spring-Dokumentation unter „Grundlegendes zu AOP-Proxys“ erläutert dieses Verhalten und bietet Problemumgehungen. Eine Problemumgehung besteht darin, die Methoden wie oben vorgeschlagen in separate Beans aufzuteilen.
Das obige ist der detaillierte Inhalt vonWarum löst mein AOP-Aspekt im Frühjahr keine verschachtelten Methodenaufrufe aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion