aop:config是Spring XML中声明式AOP的顶层配置标签,用于定义切面、切入点和通知,需引入AOP相关jar并声明aop命名空间,其子标签包括pointcut、aspect等,现多被@Aspect注解取代。
aop:config
aop:config 是 Spring XML 配置中用于声明式 AOP 的顶层标签,它告诉 Spring 容器:接下来要定义切面(Aspect)、切入点(Pointcut)、通知(Advice)等 AOP 元素。它本身不执行任何逻辑,只是启用基于 XML 的 AOP 配置模式,并提供命名空间支持。
aop:config
必须先确保 Spring AOP 相关 jar(如 spring-aop、aspectjweaver)已引入,且 XML 中正确声明了 aop 命名空间:
com.example.service...*(..))"/>
必须包裹所有 、 等子元素ref 指向的切面 bean(如 loggingAspect)必须是普通 Spring b
启用 CGLIBaop:config 下常见子标签与作用实际配置中主要靠以下组合完成切面逻辑:
:定义匹配规则,id 供其他地方引用;expression 支持 execution、within、@annotation 等:绑定一个 bean 实例作为切面,内部可嵌套多种通知、、、、
方法签名必须为 Object methodName(ProceedingJoinPoint pjp),且必须调用 pjp.proceed(),否则目标方法不执行aop:config?容易踩哪些坑?XML 方式配置 AOP 已基本被 @Aspect 注解取代,主要原因包括:
method 属性值写错也不会报错JoinPoint 手动取,且必须声明为第一个参数——但 XML 根本不校验这点 和 混用时,重复扫描可能造成切面被注册两次aop:config 在 spring-boot-starter-aop 下仍可用,但需手动加载 XML,不符合约定优于配置原则如果项目遗留 XML 配置必须维护,重点关注 pointcut 表达式是否真能匹配到目标方法,以及切面 bean 是否被正确实例化——这两点出问题,切面会静默失效,最难排查。