使用 ProxyFactory 以编程方式创建 AOP 代理
使用 Infra 以编程方式创建 AOP 代理很容易。这使你可以在不依赖 Infra IoC 的情况下使用 Infra AOP。
目标对象实现的接口会自动被代理。以下清单显示了为一个目标对象创建一个代理,其中包含一个拦截器和一个 advisor:
-
Java
ProxyFactory factory = new ProxyFactory(myBusinessInterfaceImpl);
factory.addAdvice(myMethodInterceptor);
factory.addAdvisor(myAdvisor);
MyBusinessInterface tb = (MyBusinessInterface) factory.getProxy();
第一步是构造一个 infra.aop.framework.ProxyFactory 类型的对象。
你可以像前面的示例一样使用目标对象创建它,或者在备用构造函数中指定要代理的接口。
你可以添加 advice(拦截器作为一种特殊的 advice)、advisor 或两者,并在 ProxyFactory 的生命周期内操作它们。
如果你添加一个 IntroductionInterceptionAroundAdvisor,你可以让代理实现额外的接口。
ProxyFactory 上还有一些方便的方法(继承自 AdvisedSupport),允许你添加其他 advice 类型,例如前置和抛出 advice。
AdvisedSupport 是 ProxyFactory 和 ProxyFactoryBean 的超类。
| 在大多数应用程序中,将 AOP 代理创建与 IoC 框架集成是最佳实践。 我们建议你像通常一样,使用 AOP 将配置从 Java 代码中外部化。 |