spring之基于aspectj注解aop使用

在配置文件中开启aop自动代理

<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

1)在增强类上面使用@Aspect注解

2)在增强方法上面配置不同类型通知

/*

 * 增强类

 */

@Aspect

publicclass MyUser {

 

    //让这个方法在add方法之前执行,前置通知

    @Before(value="execution(*cn.aop.User.add(..))")

    publicvoid before1() {

       System.out.println("前置通知................");

    }

   

    //后置通知

    @AfterReturning(value="execution(*cn.aop.User.update(..))")

    publicvoid after1() {

       System.out.println("后置通知....................");

    }

   

    //环绕通知

    //之前和之后都执行

    @Around(value="execution(*cn.aop.User.delete(..))")

    publicvoid around1(ProceedingJoinPointproceedingJoinPoint)throws Throwable {

      

       System.out.println("环绕通知之前................");

      

       //这个方法里面获取被增强的方法,让执行

       proceedingJoinPoint.proceed();

      

       System.out.println("环绕通知之后................");

    }

   

    //异常通知

    @AfterThrowing(value="execution(*cn.aop.User.find(..))")

    publicvoid throw1() {

       System.out.println("异常通知.......................");

    }

   

    //最终通知

    @After(value="execution(*cn.aop.User.find(..))")

    publicvoid finally1() {

       System.out.println("最终通知.......................");

    }

}

2 配置切入点注解

spring之基于aspectj注解aop使用