JDK动态代理理解精髓
2017-10-30 11:48
246 查看
1.Java动态代理的关键是:Proxy类要和InvocationHandler的接口实现类,要用同一个目标target对象class,所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
2.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
3.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
4.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
5.再创建动态代理,针对不同的target对象拦截,只需要保证proxy和invocation的参数是成对的,是匹配的,同一个即可。那么这套Proxy和Invocation就可以复用。
5 代理类:程序执行时真正执行的是代理类,代理类是实现了拦截器的流程的类。
package com.lanvis.reflect;
import java.lang.reflect.Proxy;
public class MyProxy {
public Object getProxy(Object object) {
MyHandler myHandler = new MyHandler();
myHandler.setObject(object);
return Proxy.newProxyInstance(object.getClass().getClassLoader(),
object.getClass().getInterfaces(), myHandler);
}
}
6 测试类:用来测试拦截器成功与否。
package com.lanvis.reflect;
public class Test {
public static void main(String[] args){
ITarget target=new Target();
MyProxy myProxy=new MyProxy();
ITarget proxy=(ITarget)myProxy.getProxy(target);
proxy.doSthing();
proxy.doOthing();
}
}
2.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
3.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
4.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
5.再创建动态代理,针对不同的target对象拦截,只需要保证proxy和invocation的参数是成对的,是匹配的,同一个即可。那么这套Proxy和Invocation就可以复用。
5 代理类:程序执行时真正执行的是代理类,代理类是实现了拦截器的流程的类。
package com.lanvis.reflect;
import java.lang.reflect.Proxy;
public class MyProxy {
public Object getProxy(Object object) {
MyHandler myHandler = new MyHandler();
myHandler.setObject(object);
return Proxy.newProxyInstance(object.getClass().getClassLoader(),
object.getClass().getInterfaces(), myHandler);
}
}
6 测试类:用来测试拦截器成功与否。
package com.lanvis.reflect;
public class Test {
public static void main(String[] args){
ITarget target=new Target();
MyProxy myProxy=new MyProxy();
ITarget proxy=(ITarget)myProxy.getProxy(target);
proxy.doSthing();
proxy.doOthing();
}
}
相关文章推荐
- JDK 动态代理的简单理解
- JDK 动态代理的简单理解
- jdk动态代理的初步理解
- 深入理解 jdk 动态代理的实现
- 深入理解JDK动态代理机制
- JDK动态代理(Spring AOP理解的基础)
- 深入理解JDK动态代理机制
- 从原理出发理解JDK动态代理
- 深入理解代理模式:静态代理与JDK动态代理
- jdk动态代理和cglib代理的理解
- 关于JDK动态代理的一点理解
- 深入理解JDK动态代理机制
- Java动态代理简单理解JDK
- JDK 动态代理的简单理解
- 关于JDK动态代理的理解
- JDK 动态代理的简单理解
- 深入理解JAVA JDK动态代理机制
- Java之深入理解JDK动态代理
- 通过代码组织,让你更好的理解和使用JDK动态代理
- JDK 动态代理的简单理解