jdk动态代理

jdk动态代理
在jvm运行时生成一个代理对象,通过执行和代理对象关键的invoketionhandler对象的invoke方法,去执行真实对象的目标方法。
代理机制关键的一个接口(invoketionhandler)和一个类(proxy)。
整体流程是通过Proxy.newProxyInstanse(参数1,参数2,参数3)生成目标对象:
参数1:invoketionHander接口实现类对象实例.getClass.getClassLoader():类加载器;
参数2:目标对象实例.getClass.getInterfaces():目标对象(类)包含的所有接口信息;
参数3:代理对象关联的invoketionHander对象(实例)。
EG:
接口:Subject,相应实现类mySubject(目标对象实例);
InvoketionHander接口实现类myHander,实现相应invoke()。
综上参数:
Subject sb = Proxy.newProxyInstanse(myHander.getClass().getClassLoader(), mySubject.getClass().getInterfaces(), myHander);
sb.方法名();

猜你喜欢

转载自chriszhang.iteye.com/blog/2370012