AOP 面向切面编程
名称:面向切面编程
- 一句话总结: 在不改变原有代码的条件下,对功能进行扩展.
- 公式: AOP = 切入点表达式 + 通知方法.
1.专业术语:
- 1.连接点: 在执行正常的业务过程中满足了切入点表达式时进入切面的点.(织入) 多个
- 2.通知: 在切面中执行的具体的业务(扩展) 方法
- 3.切入点: 能够进入切面的一个判断 if判断 一个
- 4.目标方法: 将要执行的真实的业务逻辑.
2 关于通知说明
- 1.前置通知: 目标方法执行之前执行
- 2.后置通知: 目标方法执行之后执行
- 3.异常通知: 目标方法执行之后抛出异常时执行
- 4.最终通知: 不管什么时候都要执行的方法.
- 说明:上述的四大通知类型不能控制目标方法是否执行.一般使用上述的四大通知类型,都是用来记录程序的执行状态.
- 5.环绕通知: 在目标方法执行前后都要执行的通知方法. 控制目标方法是否执行.并且环绕通知的功能最为强大.
3 切入点表达式说明
- 1). bean(bean的id) 类名首字母小写 匹配1个类
- 2). within(包名.类名) 按包路径匹配类 匹配多个类
- 上述表达式是粗粒度的控制,按类匹配.
- 3).execution(返回值类型 包名.类名.方法名(参数列表))
- 4).@annotation(包名.注解名) 按注解进行拦截.
重点:
在写切入点表达式的通知方法around时
参数:ProceedingJoinPoint joinPoint
必须放在第一个参数的位置
@Around("@annotation(cachefind)")
public Object around(ProceedingJoinPoint joinPoint, CacheFind cachefind) {
}
否则报错
还没有评论,来说两句吧...