Spring5快乐教程(九)AOP基本知识

一、AOP的基本概念

什么是AOP

  定义:面向切面(方面)编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得其之间耦合度降低提高程序可重用性,同时提高了开发效率

  通俗描述:不修改源代码方式,在主干功能里添加新的功能。

底层原理

  AOP的底层原理使用的是动态代理

两种情况

  • 有接口的情况:使用JDK动态代理
    • 创建接口实现类的代理对象,来增强类其中的一些方法。
  • 无接口的情况:使用CGLIB动态代理
    • 创建子类的代理对象,来增强类其中的一些方法。

二、JDK动态代理的实现

调用java.lang.reflect.proxy类的newProxyInstance方法

三个参数

  • 类加载器
  • 增强方法所在的类所实现的接口【数组形式,支持多个接口】
  • 实现InvocationHandler接口的对象

代码实现

第1步 创建接口,定义方法

第2步 创建接口实现类,实现方法

第3步 使用Proxy类创建接口的代理对象

三、操作术语

连接点

  定义:类中可以被增强的方法

切入点

  定义:类中实际被增强的方法

通知(增强)

  定义:际被增强(通知)的逻辑代码

  类型:

  • 前置通知
  • 后置通知
  • 环绕通知
  • 异常通知
  • 最终通知

切面

  定义:描述动作,把增强(通知)应用到切入点的过程

 

posted @ 2021-01-07 14:51  有梦想的肥宅  阅读(199)  评论(0编辑  收藏  举报