jdk动态代理在创建代理对象的时候 会创建一个二进制文件 在文件中包含着target 目标增强对象,和invocationHandler 的增强方法.
在代理类执行增强方法的时候,会把代理对象本身, 代理类持有的目标对象target 和 参数传给代理类持有的invocationHandler对象的invoke方法;
核心方法是:
1 public final void eat(){ 2 try { 3 super.h.invoke(this,m3,(Object[]) null); 4 5 } 6 7 } 8 9 只是写了一部分,其中this代表代理对象本身,m3 是目标对象的eat方法,第三个参数是null