使用 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 類型的物件。您可以使用目標物件建立此物件,如先前的範例所示,或在替代建構子中指定要代理的介面。

您可以新增建議(以攔截器作為一種特殊類型的建議)、Advisor 或兩者都新增,並在 ProxyFactory 的生命週期內操作它們。如果您新增 IntroductionInterceptionAroundAdvisor,您可以讓代理實作其他介面。

ProxyFactory(從 AdvisedSupport 繼承)上也有便利方法,可讓您新增其他建議類型,例如前置建議和拋出建議。AdvisedSupportProxyFactoryProxyFactoryBean 的父類別。

在大多數應用程式中,將 AOP 代理建立與 IoC Framework 整合是最佳實務。我們建議您將組態從 Java 程式碼中外部化,就像您通常應該做的那樣使用 AOP。