要在 Spring 配置中使用 @AspectJ 方面,您需要启用 Spring 支持,以根据 @AspectJ 切面配置 Spring AOP,并根据 Bean 是否被这些切面增强而自动代理。通过自动代理,我们的意思是,如果 Spring 确定一个 Bean 被一个或多个切面所增强,它将自动为该 Bean 生成一个代理,以拦截方法调用,并确保增强在需要时被运行。
@AspectJ 支持可以通过 XML 或 Java 风格的配置来启用。在这两种情况下,您还需要确保 AspectJ 的 aspectjweaver.jar
库在您应用程序的 classpath 上(1.8 或更高版本)。该库可在 AspectJ 发行版的 lib 目录中找到,也可从 Maven Central 仓库中找到。
// 也就是说,需要引入一个依赖包
implementation 'org.aspectj:aspectjweaver:1.9.7'
使用 Java 配置启用 @AspectJ 支持
要用 Java @Configuration
启用 @AspectJ 支持,请添加 @EnableAspectJAutoProxy
注解,如下例所示:
@Configuration
@EnableAspectJAutoProxy
public class AppConfig {
}
使用 XML 配置启用 @AspectJ 支持
要用基于 XML 的配置启用 @AspectJ 支持,请使用 aop:aspectj-autoproxy
元素,如下例所示:
<aop:aspectj-autoproxy/>
这假定你使用了 基于 XML 模式 的配置中描述的模式支持。关于如何导入 aop 命名空间中的标签,请参见 AOP 模式。