使用 ProxyFactory 程式設計式建立 AOP 代理

使用 Spring 程式設計式建立 AOP 代理非常容易。這使你無需依賴 Spring IoC 即可使用 Spring AOP。

目標物件實現的介面會自動代理。以下列表顯示了為一個目標物件建立代理,其中包含一個攔截器和一個 advisor

  • Java

  • Kotlin

ProxyFactory factory = new ProxyFactory(myBusinessInterfaceImpl);
factory.addAdvice(myMethodInterceptor);
factory.addAdvisor(myAdvisor);
MyBusinessInterface tb = (MyBusinessInterface) factory.getProxy();
val factory = ProxyFactory(myBusinessInterfaceImpl)
factory.addAdvice(myMethodInterceptor)
factory.addAdvisor(myAdvisor)
val tb = factory.proxy as MyBusinessInterface

第一步是構建一個型別為 org.springframework.aop.framework.ProxyFactory 的物件。你可以像前面的示例一樣使用目標物件建立它,或在另一個建構函式中指定要代理的介面。

你可以新增通知 (advice)(攔截器是通知的一種特殊型別)、advisor,或者兩者都新增,並在 ProxyFactory 的生命週期內操作它們。如果你新增一個 IntroductionInterceptionAroundAdvisor,你可以讓代理實現額外的介面。

ProxyFactory(繼承自 AdvisedSupport)上也有便捷方法,允許你新增其他通知型別,例如 before 通知和 throws 通知。AdvisedSupportProxyFactoryProxyFactoryBean 的超類。

在大多數應用程式中,將 AOP 代理建立與 IoC 框架整合是最佳實踐。我們建議你將 AOP 配置從 Java 程式碼中外化,就像通常應該做的那樣。