编程式创建 @AspectJ 代理

除了通过 <aop:config><aop:aspectj-autoproxy> 在配置中声明切面外, 也可以通过编程方式创建通知目标对象的代理。有关 Infra AOP API 的完整详情, 请参见 下一章。这里我们将重点介绍使用 @AspectJ 切面 自动创建代理的能力。

你可以使用 infra.aop.aspectj.annotation.AspectJProxyFactory 类 为目标对象创建一个由一个或多个 @AspectJ 切面通知的代理。 该类的基本用法非常简单,如下例所示:

  • Java

// 创建一个工厂,用于为给定的目标对象生成代理
AspectJProxyFactory factory = new AspectJProxyFactory(targetObject);

// 添加切面,该类必须是 @AspectJ 切面
// 你可以根据需要多次调用此方法以添加不同的切面
factory.addAspect(SecurityManager.class);

// 你也可以添加现有的切面实例,提供的对象类型必须是 @AspectJ 切面
factory.addAspect(usageTracker);

// 现在获取代理对象...
MyInterfaceType proxy = factory.getProxy();

有关更多信息,请参阅 javadoc