6.6使用ProxyFactory创建AOP代理

用Spring编程创建AOP代理很容易。这允许你使用SpringAOP而不依赖SpringIOC。

由目标对象实现的接口被自动代理。下面的列表显示使用一个拦截器和一个顾问为目标对象创建代理:

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

第一步是构造org.springframework.aop.framework.proxyFactory类型的对象。你可以使用目标对象创建此对象,如前面的示例所示,或者指定要在备用构造函数中代理的接口。

你可以添加建议(拦截器作为一种专门的建议)、顾问,或者两者兼而有之,并在代理工厂的生命周期中操纵它们。如果添加一个IntroductionInterceptionAroundAdvisor,则可以使代理实现其他接口。

ProxyFactory(继承自AdvisedSupport)上还有一些方便方法,允许你添加其他通知类型,如before和throw advice。AdvisedSupport是ProxyFactory和ProxyFactoryBean的超类。

在大多数应用程序中,将AOP代理创建与IOC框架集成是最佳实践。我们建议你一般用AOP将Java代码的配置外部化。