什么是AOP

 AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。它是面向对象编程(OOP)的一种补充。AOP思想随之产生。AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。

AOP的JDK动态代理:主要是解决实现了接口的类

个人觉得分为三块:

切面Myspect()类,JDK动态代理类jdkproxy(),对象(通俗来讲对象委托代理去做事情);

JDK动态代理类jdkproxy():注意需要实现JDK中的InvocationHandler接口

并且创建代理方法:

Spring中的AOP

然后将切面写入jdkproxy代理类中:

Spring中的AOP

Spring中的AOP

 

那么在主要业务中调用代理如何调用如下图:

Spring中的AOP

 

 

CGLIB代理:实现没有接口的类做代理

首先代理类实现接口如下:

Spring中的AOP

为对象创建代理的方法如下:

Spring中的AOP

捕获代理对象的要做的事情:

Spring中的AOP

Spring中的AOP

 在主函数为对象创建代理和JDK动态代理一样

相关文章:

  • 2021-09-19
  • 2021-07-01
猜你喜欢
  • 2021-08-20
  • 2021-12-09
相关资源
相似解决方案