AOP通知类型分为以下5类:
1.前置通知(@Before):设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法前运行
@Before("pt()")
public void before() {
System.out.println("before advice ...");
}
2.后置通知(@After):设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法后运行
@After("pt()")
public void after() {
System.out.println("after advice ...");
}
3.抛出异常后的通知(@AfterThrowing):设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法运行抛出异常后执行
@AfterThrowing("pt()")
public void afterThrowing() {
System.out.println("afterThrowing advice ...");
}
4.返回后的通知(@AfterReturning):设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法正常执行完毕后运行
@AfterReturning("pt()")
public void afterReturning() {
System.out.println("afterReturning advice ...");
}
5.环绕通知(@Around):设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法前后运行
@Around("pt()")
public Object around(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("around before advice ...");
Object ret = pjp.proceed();
System.out.println("around after advice ...");
return ret;
}