Java-动态代理

主要步骤

1.定义一个新建一个委托类接口。

2.实现InvocationHandler接口,这是java将代理类和委托类结合中需要你做的。

3.通过Proxy类新建代理对象。

源码

这个是创建代理对象的一步,其中传入参数为,委托类的ClassLoader,需要委托的类的数组,已经实现了InvocationHandler的类的对象。

其中是通过覆写InvocationHandler接口的invoke方法来实现的动态代理,当被委托的类的方法被调用时,会转而调用handler的invoke方法,在invoke方法当中我们可以编写代理类需要实现的业务逻辑。

在代理实例上处理方法调用并返回结果。在与方法关联的代理实例上调用方法时,将在调用处理程序上调用此方法。
参数:
proxy – 在其上调用方法的代理实例
method – 对应于在代理实例上调用的接口方法的 Method 实例。Method 对象的声明类将是在其中声明方法的接口,该接口可以是代理类赖以继承方法的代理接口的超接口。
args – 包含传入代理实例上方法调用的参数值的对象数组,如果接口方法不使用参数,则为 null。基本类型的参数被包装在适当基本包装器类(如 java.lang.Integerjava.lang.Boolean)的实例

 

打赏