2018-10-05

反射_invoke    aop详解   代理51cto   代理图解   jvm_死灰级  反射入门_笨蛋   代理111

动态代理的目的:做方法的增强,在不改变源码的前提下,增强一些方法。

1.反射::
invoke

classLoader:类加载器,我们手动写的都是java文件,需要编译成class文件,这个是遵循JVM规范的二进制文件,然后通过classLoader将class文件加载进内存,生成我们需要的class对象,这个class对象通过反射就可以拿到类的所有信息。在这边的作用其实就是将Java动态生成的class文件进行加载得到动态代理的class对象,以便后面其他操作。

interfaces:这个就是接口,可以看出无论代理或者RealSubject都是实现同样的接口,Java替我们动态生成的class文件中的方法其实就是接口中的方法。这个其实也是Java动态代理的缺点,即使RealSubject中声明的方法,但是接口中没有声明该方法,那么在生成的代理中就没有,也就是动态生成的代理类中只有接口中的方法,这个后面看栗子就清楚了。

proxyHandler:就是InvocationHandler的实现类,集成管理Proxy方法的调用映射到RealSubject中,主要就是在invoke中方法实现。在我们这个栗子就是实现将AnimalProxy方法调用映射到Animal对应的方法上。

作者:juexingzhe

链接:https://www.jianshu.com/p/b00ef12d53cc

來源:

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(2018-10-05)