Spring AOP 中 AspectJ 支持详解
1. 基于注解的 AspectJ 通知类型
在 Spring AOP 里,借助 AspectJ 注解能够定义多种类型的通知,这些通知会在特定的切入点执行。下面详细介绍各类通知:
1.1 @Before 通知
@Before
通知可让我们在代理调用目标对象之前执行操作,也就是在连接点执行之前。被注解的方法返回值为 void
,其签名通常是 public void
。在 @Before
注解中,需要指明切入点,告知 Spring 在何处应用该通知,比如指定 bean、包类等。除非抛出异常,此通知不会阻止处理流程的继续。
示例代码如下:
package org.springaop.chapter.four;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
public class AspectAdvicesExamples {
@Before("execution(* org.springaop.service.AccessOperation.*(..))")
public void controlAccessCheck() {
// 具体逻辑
}
}
上述代码表明,当 AccessOp