一,相关名词
切面(Aspect):一个横切功能的模块化,这个功能可能会横切多个对象(业务),比如:aMethod()方法就是一个"切面",它横切到多个业务中
切入点(Pointcut):可以插入 "横切逻辑(如aMethod())"的方法。比如:"调用add()"就是一个切点。
通知:
前置通知(Before Advice):在切入点add()方法执行之前,插入的通知。
后置通知(After Returning Advice):在切入点add()方法执行完毕之后,插入的通知
异常通知(After Throwing Advice):在切入点add()方法抛出异常时,插入的通知
最终通知(After FinallyAdvice):当切入点add()方法执行完毕时,插入的通知(不论是正常返回还是异常退出)
环绕通知(Around Advice):可以贯穿切入点add()方法执行的整个过程。
二,通知
1,我们想把一个普通的类变成一个特定功能的类。有三种方法:
继承类
实现接口
加注解
配置
2,把一个普通的类 变成 "通知",
2.1,通过让类实现接口来实现
通知类型 需要实现的接口 接口中的方法 执行时机
前置通知 org.springframework.aop.MethodBeforeAdvice before() 目标方法执行前
后置通知 org.springframework.aop.AfterReturningAdvice afterReturning() 目标方法执行后
异常通知 org.springframework.aop.ThrowsAdvice 无 目标方法发生异常时
环绕通知 org.aopalliance.intercept.MethodInterceptor invoke() 拦截对目标方法调用,即调用目标方法的整个过程
原文地址:https://www.cnblogs.com/inspred/p/10827967.html