Skip to content

AOP(aspect Oriented Programming)

将我们的业务逻辑当中的非业务逻辑代码(交叉业务)包括 安全,记录日志,事物 相关的代码的提取出来,形成一个横向的切面,然后把业务逻辑看成是纵向的话,然后我们以横向交叉的方式应用到业务流程当中的过程 就叫做 AOP

  • 面向切面编程,面向方面编程
  • 对 OOP 编程的补充
  • 底层实现是采用动态代理
  • 在你的业务流程当中,和你的业务不相关的,非业务逻辑通用代码

优点

  • 代码复用性增强
  • 代码易维护
  • 使开发者更关注业务逻辑

切面编程七大术语

放通知代码的地方就是连接点,被放通知代码的那段业务方法叫切点 把通知代码放在这段业务上的这个动作就叫织入,两个形成的这种模式就叫切面

  • 连接点 JoinPoint 在程序的整个执行过程中,可以织入切面的位置,方法的执行前后,异常抛出之后等位置

  • 切点 Pointcut 真正织入切面的方法

  • 通知 Advice 又叫 增强 事物,日志,安全代码,具体的代码就是通知 通知的方式:

    1. 前置
    2. 后置
    3. 环绕
    4. 异常
    5. 最终
  • 切面 aspect 切点 + 通知 就是切面

  • 织入 weaving 把通知应用到目标对象上的过程

  • 代理对象 Proxy 一个目标对象被织入通知后产生的新对象

  • 目标对象 Target 被织入通知的对象

切点表达式

用来定义通知 advice 往哪些方法上切入

js
"execution(修饰符 返回值类型 全限定类名 方法名(形式参数列表))";