Aop

SpringAop:

Aop就是一种更高级的动态代理的使用; Aspect Oritention Programming(面向切面编程)

AOP说明

名称: 面向切面编程.
作用: 减少代码的耦合性,扩展业务方法.

AOP公式

AOP切面 = 切入点(IF判断) + 通知(方法)

切入点表达式

  1. Bean 类的路径 类中的方法执行都会执行通知.
    指定具体某一个bean
  2. within(包名.类名)
    within(com.jt.service.*) service包中全部的类中的方法执行都会执行通知方法.
    上述的2种通知粒度较粗.
  3. execution(返回值类型 包名.类名.方法名(参数列表))
    例子1:
    execution(int com.jt.service….(…))
    返回值类型int类型,com.jt.service下的所有包下的所有类
    的所有方法,并且参数列表是任意的.
    例子2:
    execution(* com..service..*(int))
    返回值为任意类型 com包下的一级包路径的service包的一级包的所有类型的所有方法的参数有一个参数并且类型为int
    [email protected](包名.注解名)
    @annotation(注解名)

通知类型

1.before 前置通知 目标方法执行之前执行.
2.afterReturning 后置通知 目标方法执行之后执行.
3.afterThrowing 异常通知 目标方法执行之后出现异常时执行.
4.after 最终通知 不管什么时候最后都要执行的通知.
5.around 环绕通知 目标方法执行前后都要执行的通知.
说明:around功能最为强大,因为可以控制目标方法的执行

最后是本人刚总结的大概执行流程图

Aop