使用 Spring 以编程方式创建 AOP 代理很容易。这使您可以使用 不依赖 Spring IoC 的 Spring AOP。

目标对象实现的接口是 自动代理。以下列表显示了为目标对象创建代理,其中包含一个 拦截器和一名顾问:

  • Java

  • Kotlin

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

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

您可以添加建议(拦截器是一种专门的建议)、顾问或两者兼而有之 并在 .如果添加 ,则可以使代理实现其他 接口。ProxyFactoryIntroductionInterceptionAroundAdvisor

还有方便的方法(继承自) 这使您可以添加其他建议类型,例如之前和抛出建议。 是 和 的超类。ProxyFactoryAdvisedSupportAdvisedSupportProxyFactoryProxyFactoryBean

在大多数情况下,将 AOP 代理创建与 IoC 框架集成是最佳实践 应用。我们建议您使用 AOP 将 Java 代码中的配置外部化, 一般来说,你应该这样做。