AOP-Einschränkungen bei Methodenaufrufen verstehen
Sie sind auf ein häufiges Problem gestoßen, bei dem Spring AOP nicht aufgerufen wird, wenn Methode2 innerhalb von Methode1 aufgerufen wird gleiche Klasse. Um den Grund dafür zu verstehen, tauchen wir in die grundlegenden Konzepte von AOP in Spring ein.
In Spring werden AOP-Aspekte auf Proxy-Objekte angewendet, die die tatsächlichen Bean-Instanzen umgeben. Wenn Sie einen Verweis auf eine Bean erhalten, handelt es sich nicht um die ursprüngliche Klasse, sondern um einen synthetischen Proxy, der die relevanten Schnittstellen implementiert und an die tatsächliche Klasse delegiert. Dieser Proxy fügt Funktionalität hinzu, einschließlich AOP-Aspekten.
In Ihrem Fall rufen Sie Methode2 direkt von Methode1 innerhalb derselben Klasse auf und umgehen dabei den Bean-Proxy vollständig. Folglich werden die für Methode 2 definierten AOP-Aspekte nicht ausgelöst.
Um dieses Problem zu beheben, können Sie mehrere Alternativen in Betracht ziehen:
Das obige ist der detaillierte Inhalt vonWarum kann AOP Methodenaufrufe innerhalb derselben Klasse nicht abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!