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

使用 Spring 可以輕鬆地以程式設計方式建立 AOP 代理。這讓您可以在不依賴 Spring IoC 的情況下使用 Spring AOP。

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

  • 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 型別的物件。您可以像前面的示例一樣使用目標物件建立它,或者在備用建構函式中指定要代理的介面。

您可以新增通知(攔截器作為一種特殊的通知)、通知器或兩者,並在 ProxyFactory 的生命週期中操作它們。如果您新增 IntroductionInterceptionAroundAdvisor,您可以讓代理實現額外的介面。

ProxyFactory 上也有便利方法(繼承自 AdvisedSupport),允許您新增其他通知型別,例如前置通知和丟擲通知。AdvisedSupportProxyFactoryProxyFactoryBean 的超類。

在大多數應用程式中,將 AOP 代理建立與 IoC 框架整合是最佳實踐。我們建議您像往常一樣,將 AOP 的配置從 Java 程式碼中外部化。
© . This site is unofficial and not affiliated with VMware.