理解Spring AOP 代理行為
在Spring AOP 中,方面應用於透過代理物件進行的方法調用,而不是直接應用於實作類別。當您為 bean 定義 AOP 配置時,Spring 會為該 bean 建立一個代理,它攔截方法呼叫並將其重定向到實際實作。
問題:
在提供的程式碼中,method2() 在同一類別的 method1() 中直接調用,完全繞過代理。因此,AOP 方面沒有被呼叫。
解決方案:
要解決此問題,您有兩個選擇:
為Method1 和Method2 定義單獨的Bean:
使用外部AOP 框架:
Spring 代理機制:
Spring 採用代理機制來實現 AOP 。當一個 bean 注入另一個 bean 時,就會建立一個處理方法呼叫的代理程式。該代理不僅將呼叫委託給實際的 bean,還攔截它們以獲取潛在的 AOP 功能。
請參閱 Spring 文件中的「了解 AOP 代理」部分以取得更多詳細資訊和替代解決方案。
以上是為什麼我的 Spring AOP 方面不適用於同一類別中的方法呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!