使用 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),允許您新增其他通知型別,例如前置通知和丟擲通知。AdvisedSupport 是 ProxyFactory 和 ProxyFactoryBean 的超類。
| 在大多數應用程式中,將 AOP 代理建立與 IoC 框架整合是最佳實踐。我們建議您像往常一樣,將 AOP 的配置從 Java 程式碼中外部化。 |