Java笔记:SpringAOP 前置通知、后置通知等通知

@AspectJ支持的5种通知:

—@Before:前置通知在方法执行前执行

//明该方法为一个前置通知:在目标方法开始之前执行

—@After:后置通知,在方法执行后执行

//后置通知,就是在目标方法执行之后(无论是否发生异常)执行的通知
//后置通知中不能访问目标方法的返回结果

—@AfterReturning:返回通知,在方法返回结果之后执行

   //返回通知,在方法正常结束之后执行的代码
   //返回通知是可以访问到方法的返回值的

获取返回的值:

    @AfterReturning(value = "execution(* a.b.*( ))",returning = "result")
    public void afterReturning(JoinPoint joinPoint,String result){
        System.out.println("value is "+result);
    }

—@AfterThrowing:异常通知,在方法抛出异常后执行

//返回异常通知,返回抛出异常的时候执行的通知,可以获得返回的异常
//可以访问到异常对象,且可以指定在出现特定异常的时候再执行通知代码

—@Around:环绕通知,围绕着方法执行

//环绕通知需要携带ProceedingJoinPoint类型的参数
//环绕通知类似于动态代理的全过程,这个类型ProceedingJoinPoint的参数可以决定是否执行目标方法
//且环绕通知必须有返回值,返回值即为目标方法返回值
 proceedingJoinPoint.proceed();   //放行

对于切面的优先级

可以在类上使用注解@Order(1),括号中的数字越小,优先级越高
对于切面的优先级

可以在类上使用注解@Order(1),括号中的数字越小,优先级越高

@Order(1)

版权声明:本文为qq_39199837原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。