@Aspect
public class ExampleAspect {
@Pointcut("execution(* com.psjay.example.spring.aop.*.*(..))")
public void aPointcut() {
}
@Before("aPointcut()")
public void beforeAdvice() {
System.out.println("before advice is executed!");
}
}
@Aspect 注解代表切面
@Pointcut(**)代表方法签名,便于@Before等注解的使用。
其他注解:
@AfterReturning 返回后通知(After return advice) :在某连接点正常完成后执行的通知,不包括抛出异常的情况。
@AfterThrowing 抛出异常后通知(After throwing advice) : 在方法抛出异常退出时执行的通知。
@Around 环绕通知(Around advice) :包围一个连接点的通知,类似Web中Servlet规范中的Filter的doFilter方法。可以在方法的调用前后完成自定义的行为,也可以选择不执行。这时aop的最重要的,最常用的注解。用这个注解的方法入参传的是ProceedingJionPoint pjp,可以决定当前线程能否进入核心方法中——通过调用pjp.proceed();