四、AOP基本概念

1.AOP是什么?

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

通俗解释:不通过修改源代码就可以将新的功能添加到主干中。

2.AOP底层原理

(1)AOP底层使用的是动态代理:有两种情况的动态代理

一种情况:有接口时,使用的是JDK 的动态代理;

Spring5--AOP底层原理_类加载器

一种情况:无接口时,使用的是CGLIB动态代理;

Spring5--AOP底层原理_业务逻辑_02

 (2)实例:使用JDK 的动态代理,使用Proxy类中的方法创建对象

Spring5--AOP底层原理_类加载器_03

 

 增强类代码

Spring5--AOP底层原理_类加载器_04

 

 类加载器:

Spring5--AOP底层原理_类加载器_05

 

 结果

Spring5--AOP底层原理_面向切面编程_06