跳到主要内容
版本:7.0.3

使用ProxyFactory以编程方式创建AOP代理

Hunyuan 7b 中英对照 Creating AOP Proxies Programmatically with the ProxyFactory Creating AOP Proxies Programmatically with the ProxyFactory

使用Spring可以很容易地通过编程方式创建AOP代理。这样你就可以在不依赖于Spring IoC的情况下使用Spring AOP了。

目标对象实现的接口会被自动代理。以下示例展示了如何为一个目标对象创建一个代理,该代理包含一个拦截器(interceptor)和一个顾问(advisor):

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

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

你可以在ProxyFactory的整个生命周期内添加建议(将拦截器视为一种特殊类型的建议)、顾问(advisors),或者同时添加两者,并对它们进行操作。如果你添加了一个IntroductionInterceptionAroundAdvisor,就可以让代理实现额外的接口。

ProxyFactory(继承自AdvisedSupport)还提供了一些便捷方法,可以让你添加其他类型的顾问(advice),例如before顾问和throws顾问。AdvisedSupportProxyFactoryProxyFactoryBean的父类。

提示

在大多数应用程序中,将AOP代理的创建与IoC框架集成是最佳实践。我们建议像通常那样,将配置从Java代码中分离出来。