什麼是代理:
代理是一種常用的設計模式。
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)使用及實作原理分析
https://blog.csdn.net/jiankunking/article/details/52143504
JDK和CGLIB動态代理差別:
https://blog.csdn.net/yhl_jxy/article/details/80635012