JAVA反射与代理

2019-05-20  本文已影响0人  huapro
JDK动态代理UML图 image.png CGLIB动态代理UML

每一个动态代理类都必须要实现InvocationHandler这个接口,并且每个代理类的实例都关联到了一个handler,当我们通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由InvocationHandler这个接口的 invoke 方法来进行调用。我们来看看InvocationHandler这个接口的唯一一个方法 invoke 方法:

image.png

动态代理生成的代理对象,最终都可以用接口接收,和目标对象一起形成了多态,可以随意切换展示不同的功能。但是切换的同时,只能使用该接口定义的方法。

image.png image.png

InvocationHandler增强器,Proxy代理者,proxy通过class.classLoader 和class.interface ,InvocationHandler来得到一个代理对象

每一个动态代理类的调用处理程序都必须实现InvocationHandler接口,并且每个代理类的实例都关联到了实现该接口的动态代理类调用处理程序中,当我们通过动态代理对象调用一个方法时候,这个方法的调用就会被转发到实现InvocationHandler接口类的invoke方法来调用,看如下invoke方法:

image.png
上一篇 下一篇

猜你喜欢

热点阅读