要在 Spring 配置中使用 @AspectJ 方面,您需要启用 Spring 支持,以根据 @AspectJ 切面配置 Spring AOP,并根据 Bean 是否被这些切面增强而自动代理。通过自动代理,我们的意思是,如果 Spring 确定一个 Bean 被一个或多个切面所增强,它将自动为该 Bean 生成一个代理,以拦截方法调用,并确保增强在需要时被运行。

@AspectJ 支持可以通过 XML 或 Java 风格的配置来启用。在这两种情况下,您还需要确保 AspectJ 的 aspectjweaver.jar库在您应用程序的 classpath 上(1.8 或更高版本)。该库可在 AspectJ 发行版的 lib 目录中找到,也可从 Maven Central 仓库中找到。

  1. // 也就是说,需要引入一个依赖包
  2. implementation 'org.aspectj:aspectjweaver:1.9.7'

使用 Java 配置启用 @AspectJ 支持

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

  1. @Configuration
  2. @EnableAspectJAutoProxy
  3. public class AppConfig {
  4. }

使用 XML 配置启用 @AspectJ 支持

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

  1. <aop:aspectj-autoproxy/>

这假定你使用了 基于 XML 模式 的配置中描述的模式支持。关于如何导入 aop 命名空间中的标签,请参见 AOP 模式