通知类别分为:
-
前置通知(Before advice):在目标方法调用前执行通知
实现类:org.springframework.aop.BeforeAdvice
注解:@Before -
后置通知(After advice):在目标方法完成(不管是抛出异常还是执行成功)后执行通知
实现类:org.springframework.aop.AfterAdvice
注解:@After -
环绕通知(Around advice):在目标方法调用前后均可执行自定义逻辑
实现类:org.aopalliance.intercept.MethodInterceptor
注解:@Around -
返回通知(After returning advice):在目标方法执行成功后,调用通知
实现类:org.springframework.aop.AfterReturningAdvice
注解:@AfterReturning -
异常通知(After throwing advice):在目标方法抛出异常后,执行通知
实现类:org.springframework.aop.ThrowsAdvice
注解:@AfterThrowing
通知的优先顺序:
前置,后置环绕,后置,后置返回
注1:Spring只支持方法级的增强,所以前置增强目前可用的是org.springframework.aop.MethodBeforeAdvice,而BeforeAdvice是为将来扩展需要准备的。
注2:前置通知与环绕通知不能同时使用!