详见印象笔记
@AfterReturning切点方法执行后的返回值
@AfterThrowing抛出通知
@After无论什么情况下都会执行的方法
@Around拦截对目标方法调用,pjp.proceed();方法去调用。可用于统计调用方法执行时间。
@Before在目标方法调用前调用,可在调用入口赋值全局参数都ThreadLocal,便于后续深入方法使用。此时需在After做remove。
after先于afterThrowing执行。
是否执行与执行顺序:
try{
try{
//@Before
method.invoke(..);
}finally{
//@After
}
//@AfterReturning
}catch(){
//@AfterThrowing
}