Spring-AOP通知获取数据

AOP通知获取数据

  • 获取切入点方法的参数
    • JoinPoint : 适用于前置、后置、返回后、抛出异常后通知
    • ProceedJointPoint :适用于环绕通知
  • 获取切入点方法返回值
    • 返回后通知
    • 环绕通知
  • 获取切入点方法运行异常信息
    • 抛出异常后通知
    • 环绕通知

1、获取切入点方法的参数:添加传参JoinPoint

    @Before("pt()")
    public void before(JoinPoint jp){
        Object[] args = jp.getArgs();
        System.out.println(Arrays.toString(args));
        System.out.println(
                "before......."
        );
    }
    @After("pt()")
    public void after(JoinPoint jp){
        Object[] args = jp.getArgs();
        System.out.println(Arrays.toString(args));
        System.out.println(
                "after......."
        );
    }

2、修改获取到的参数,可以直接修改,然后当参数传入proceed方法

    @Around("pt()")
    public Object around(ProceedingJoinPoint pjp) throws Throwable {
        Object[] args = pjp.getArgs();
        System.out.println(args[0]);
        System.out.println(args[1]);
        args[0] = 1;
        args[1] = "tchuayekai";
        System.out.println(
                "around before......."
        );
        //表示对原始操作的调用
        Object proceed = pjp.proceed(args);
        System.out.println(
                "around after......."
        );
        return proceed;
    }

3、返回值的获取,@Around也可以获取返回值。Spring-AOP通知获取数据_第1张图片

 

4、aop通知获取异常数据

Spring-AOP通知获取数据_第2张图片

 

你可能感兴趣的:(SSM,spring,java,mybatis)