6.6. 以编程方式创建 AOP 代理ProxyFactory

使用 Spring 以编程方式创建 AOP 代理很容易。这使您可以在不依赖 Spring IoC 的情况下使用 Spring AOP。

目标对象实现的接口被自动代理。以下清单显示了为目标对象创建代理,其中包含一个拦截器和一个Advisor:

ProxyFactory factory = new ProxyFactory(myBusinessInterfaceImpl);
factory.addAdvice(myMethodInterceptor);
factory.addAdvisor(myAdvisor);
MyBusinessInterface tb = (MyBusinessInterface) factory.getProxy();

第一步是构造一个类型为 org.springframework.aop.framework.ProxyFactory的对象 。您可以像前面的示例一样使用目标对象创建它,或者指定要在备用构造函数中代理的接口。

您可以添加切面(使用拦截器作为一种特殊的建议)和/或切面程序,并在ProxyFactory 的生命周期中操纵它们。如果添加 IntroductionInterceptionAroundAdvisor,则可以使代理实现其他接口。

ProxyFactory(从AdvisedSupport继承 )还有一些方便的方法,可以让您添加其他切面类型,例如 before 和 throws 切面。 AdvisedSupportProxyFactoryProxyFactoryBean 的超类。

在大多数应用程序中,将 AOP 代理创建与 IoC 框架集成是最佳实践。我们切面您使用 AOP 从 Java 代码外部化配置,就像您通常应该做的那样。

最后更新于