-
AOP通知描述了抽取的共性功能,根据共性功能抽取的位置不同,最终运行代码时要加入到合理的位置
-
AOP通知共分为5种类型
-
前置通知
@After("pt()")
,方法执行之前 -
后置通知
@After("pt()")
,方法执行之后 -
环绕通知
@Around("pt()")
环绕通知必须依赖形参ProceedingJoinPoint才能实现对原始方法的调用,进而实现对原始方法调用前后同时添加通知
通知中如果未使用
ProceedingJoinPoint
对原始方法调用将跳过原始方法的执行
对原始方法的调用不需要返回值,设置为void类型,如果接受返回值,必须设定为Object类型
原始方法的返回值如果是void类型,通知方法可以设置为void也可以设置Object
@Before("pt()")
public Object before(){
System.out.println("before advice ...");
return 12;
}
由于无法预知原始方法运行后是否抛出异常,因此环绕通知必须抛出Throwable对象
-
返回后通知
@AfterReturning("pt()")
-
抛出异常后通知
@AfterThrowing("pt()")
网友评论