使用 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
繼承)上也有便利方法,可讓您新增其他建議類型,例如前置建議和拋出建議。AdvisedSupport
是 ProxyFactory
和 ProxyFactoryBean
的父類別。
在大多數應用程式中,將 AOP 代理建立與 IoC Framework 整合是最佳實務。我們建議您將組態從 Java 程式碼中外部化,就像您通常應該做的那樣使用 AOP。 |