启用 @AspectJ 支持

要在 Spring 配置中使用 @AspectJ 切面,您需要启用 Spring 对基于 @AspectJ 切面的 Spring AOP 配置的支持,以及根据这些切面是否对 bean 进行通知来自动代理 bean。自动代理是指,如果 Spring 确定一个 bean 被一个或多个切面通知,它会自动为该 bean 生成一个代理,以拦截方法调用并确保在需要时运行通知。

可以使用 XML 或 Java 样式的配置启用 @AspectJ 支持。无论哪种方式,您还需要确保 AspectJ 的 aspectjweaver.jar 库在应用程序的类路径上(版本 1.9 或更高)。此库在 AspectJ 发行版的 lib 目录或 Maven Central 存储库中可用。

使用 Java 配置启用 @AspectJ 支持

要使用 Java @Configuration 启用 @AspectJ 支持,请添加 @EnableAspectJAutoProxy 注解,如下例所示

  • Java

  • Kotlin

@Configuration
@EnableAspectJAutoProxy
public class AppConfig {
}
@Configuration
@EnableAspectJAutoProxy
class AppConfig

使用 XML 配置启用 @AspectJ 支持

要使用基于 XML 的配置启用 @AspectJ 支持,请使用 aop:aspectj-autoproxy 元素,如下例所示

<aop:aspectj-autoproxy/>

这假设您使用的是 基于 XML 架构的配置 中描述的架构支持。有关如何在 aop 命名空间中导入标签的信息,请参阅 AOP 架构