AOP与代理模式


为什么将一个对象加入到IOC容器后,取出该对象后,发现它的方法多了一些功能?

原因是:如果该类被AOP切中,从IOC容器取出的对象,不是该类的对象,而是该类代理类的对象。

文章目录:

1.代理模式

  1. 简介
  2. 作用
  3. 分类

2.静态代理实现

3.动态代理实现

  1. JDK动态代理
  2. CGLB动态代理

AOP的实现原理

  1. 当调用容器的getBean方法后,Spring查找对象后会判断该对象的方法是否被某个切面切中
  2. 如果没有切中,就创建原有类的对象
  3. 如果被切中了,再判断该类是否实现过任何接口
  4. 如果实现过接口,则通过JDK动态代理生成代理类,并创建对象
  5. 如果没有实现过接口,则通过CGLib动态代理生成代理类,并创建对象

https://gitee.com/fan-gege/proxy.git