java三种代理 -- 静态、动态代理、Cglib

参考文章:

1、https://www.zhihu.com/question/20794107/answer/658139129(讲解静态、动态代理细致入微)

2、关于Cglib:https://zhuanlan.zhihu.com/p/70098824


1、代理总体目的:在目标对象的功能基础上,扩展其功能。不改变其本身的功能;

2、常见的代理模式:静态、动态、Cglib代理。前两者适合实现了接口的目标对象,后者适合没有实现接口的目标对象;

3、有接口的目标对象代理思路:基于复制 + 扩展的思路,创建一个代理类:为了更好地在原有基础上进行扩展,可以让代理类和目标类实现同一个接口(类似于复制,然后再进行扩展);

4、基于不同的“复制“方式,分为静态和动态代理:以下主要用于理解记忆,具体代码参考文章。

preview

  • 静态如下:

preview

  • 动态如下:

跳过生成代理类,直接生成代理对象。

关于代理对象和目标对象之家的桥梁 - InvocationHandler对象:

猜你喜欢

转载自blog.csdn.net/Longtermevolution/article/details/108336244