在配置文件中开启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 配置切入点注解