Spring-AOP-AOP常用术语
Spring-AOP-AOP常用术语
1.连接点:每个方法的每一个位置都是一个连接点
2.切入点:实际被真正增强的方法,称为切入点
3.通知(增强):实际增强的逻辑部分称为通知(增强)
通知有多种类型
try{ //@Before method.invoke(obj,args); //@AfterReturning }catch (Exception e) { //@AfterThrowing } finally { //@After }
- 前置通知:(Before advice)表明在连接点执行之前执行的动作。@Before
- 返回通知:(After returning advice)在某个连接点完成后的通知,比如一个方法没有抛出任何异常,正常返回。@AfterReturning
- 环绕通知:(Around Advice) 环绕可以看作是包含前置通知和后置通知的一个通知,先了解,后面具体理解。@Around
- 异常通知:(After throwing advice) 在方法异常推出时候执行的通知。@AfterThrowing
- 最终通知:(After advice) 【finally】在连接点退出时候执行的通知。不论是正常退出还是异常退出。@After
4.切面:是动作
(1)把通知应用到切入点的过程
5.切入点表达式:在众多连接点中选择切入点
固定格式:execution(访问权限符 返回值类型 方法全类名(参数表))
通配符:
* :
- 匹配一个或多个字符
- 匹配任意一个参数
- 只能匹配一层路径
- 权限修饰不能用*,不写就是代表了任意权限
.. :
- 匹配任意多个参数、任意类型参数
- 匹配任意多层路径
最精确:execution(public int com.orz.spring.UserService.add(int , int))
最模糊(千万别写):execution(* *.*(..))