(3)AOP原理

AOP概念

定义:

面向切面编程,扩展功能不修改源文件
AOP采用横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视,事务管理,安全检查,缓存)

AOP原理

image.png
image.png
image.png

AOP操作术语

我们有如下一个类:

public class Person{
    public void add(){};
    public void delete(){};
    public void update(){};
    public void find(){}
}
  • Joinpoint 连接点: 类里面哪些方法可以被增强,这些方法就叫连接点,比如Person类中的4个方法都是joinpoint
  • Pointcut 切入点(重点):在类中可以有很多方法被增强,但是在实际操作中,只增强了类中的某种或某几种方法,这些方法就叫切入点
  • Advice 通知/增强(重点):实际增强的逻辑,比如add()中扩展日志功能,那么日志功能就叫做增强,细分为以下4个
    1. 前置通知:在方法之前执行
    2. 后置通知:在方法之后执行
    3. 异常通知:方法出现异常
    4. 最终通知:在后置之后执行
    5. 环绕通知:在方法之前和之后执行
  • Aspect 切面(重点):把增强应用到具体的方法上面,比如在add()方法中添加日志功能,那么把日志用到add()中的过程就是aspect ,即把增强用到切入点的过程

你可能感兴趣的:((3)AOP原理)