7.7. 使用ProxyFactory通过编程创建AOP代理

使用Spring通过编程创建AOP代理是很容易的。这使你可以使用Spring AOP而不必依赖于Spring IoC。

下面的清单显示了如何使用一个拦截器和一个通知器来为一个目标对象来创建一个代理。目标对象实现的接口将被自动代理:

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

第一步是创建一个类型为org.springframework.aop.framework.ProxyFactory的对象。 你可以像上面例子里那样使用一个目标对象来创建它,或者在一个可选的构造器里说明需要被代理的接口。

你可以添加拦截器或通知器,并在ProxyFactory的生命周期里操作它们。如果你加入一个IntroductionInterceptionAroundAdvisor,你可以让代理实现额外的接口。

在ProxyFactory里也有很方便的方法(继承自AdvisedSupport)允许你加入其它的通知类型例如前置和异常通知。 AdvisedSupport是ProxyFactory 和ProxyFactoryBean的共同父类。

提示

在大多数应用程序里,把AOP代理的创建和IoC框架集成是最佳实践。通常情况下我们推荐你在Java代码外进行AOP的配置。