1.  获取参数

  ¤  JoinPoint  适用于前置、后置、返回后、抛出异常通知

    @Before/@After/@AfterReturning/AfterThrowing("pt()")

    public void insert(JoinPoint jp)

    {

      Object[] args = jp.getArgs();

    }

  ¤  ProceedJoinPoint  适用于环绕通知

    @Around("pt()")

    public void insert(ProceedingJoinPoint pjp)

    {

      Object[] args = pjp.getArgs();

    }

2.  获取返回值

  ¤  返回后通知  注:如果参数中包含JoinPoint,那此参数必须放在第一个位置

    @AfterReturning(value = "pt()", returning = "ret")

    public void insert(JoinPoint jp, Object ret)

    {

      Object ret = pjp.proceed();

    }

  ¤  环绕通知

    @Around("pt()")

    public Object insert(ProceedingJoinPoint pjp) throws Throwable

    {

      Object ret = pjp.proceed();

      return ret;

    }

3.  获取异常

  ¤  抛出异常后通知

    @AfterThrowing(value = "pt()", throwing = "t")

    public void insert(JoinPoint jp, Throwable t)

    {

      Object ret = pjp.proceed();

    }

  ¤  环绕通知

    @Around("pt()")

    public Object insert(ProceedingJoinPoint pjp)

    {

      Object ret = null;

      try

      {

        ret = pjp.proceed();

      }

      catch(Throws t)

      {

      }

      return ret;

    }