使用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
)上还有一些便捷方法,可以让您添加其他建议类型,例如 before 和 throws 建议。AdvisedSupport
是ProxyFactory
和ProxyFactoryBean
的超类。
在大多数应用程序中,将 AOP 代理创建与 IoC 框架集成是最佳实践。我们建议您像通常一样,将 AOP 的配置从 Java 代码中外部化。 |