搜索
您的当前位置:首页正文

JDK的动态代理~

来源:榕意旅游网

什么是代理:
代理是一种常用的设计模式。
JDK中的Proxy类:
位于java.lang.reflect 包下
在这个包下主要设及两个类
(1)Interface InvocationHandler,在这个接口中只有一个方法:

invoke(Object proxy, 方法 method, Object[] args) 
处理代理实例上的方法调用并返回结果。
public object invoke(Object obj,Method method, Object[] args) 

(2)Proxy:该类即为动态代理类,
protected Proxy(InvocationHandler h):构造函数,用于给内部的h赋值。

static Class getProxyClass (ClassLoaderloader, Class[] interfaces):获得一个代理类,其中loader是类装载器,interfaces是真实类所拥有的全部接口的数组。

static Object newProxyInstance(ClassLoaderloader, Class[] interfaces, InvocationHandler h):返回代理类的一个实例,返回后的代理类可以当作被代理类使用(可使用被代理类的在Subject接口中声明过的方法)

参考文章:
JDK1.8
Java JDK 动态代理(AOP)使用及实现原理分析

JDK和CGLIB动态代理区别:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top