核心知识点:
- Proxy和InvocationHandler都在java.lang.reflect包下
- Proxy.newInstance(Classloader cl,Class interfaces,InvocationHandler iHandler)方法中参数的理解: Classloader: 代理类的ClassLoader Class interfaces: 首先是对象的class对象集合,其次是代理类所实现的接口的Class对象集合
InvocationHandler: 调用方法的处理器。 - 动态代理硬核需求:
a. 代理接口要是用实现类,实现所有接口。
b. 自定义的InvocationHandler要实现invoke方法。 - 动态代理实现流程:(自己理解,仍有不足)
Proxy.newInstance()方法,帮我们透明化实现代理细节,在调用方法的时候,使用InvovationHandler中invoke方法具体实现。
知识不足点:(JDK源码)
- JDK中Proxy.newInstance()透明化代理,具体实现方式是什么?
- JDK中对于动态代理流程控制,实现细节是怎样控制的?