使用 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 通知。AdvisedSupport
是 ProxyFactory
和 ProxyFactoryBean
的超类。
在大多数应用程序中,将 AOP 代理创建与 IoC 框架集成是最佳实践。我们建议你将 AOP 配置从 Java 代码中外化,就像通常应该做的那样。 |