`

Java中反射和动态代理学习心得和总结

阅读更多

    下面对反射和动态代理做下总结:

      对于反射,反射是用来发现类的属性、方法、构造器并进行动态调用和修改的一种工具,这是可以把java看作动态语言的重要原因。

     关于动态代理,毫无疑问,动态代理的实现是在反射的基础之上进行实现的,目前不少的框架比如spring的面向切面编程底层的实现原理就是动态代理。

     关于动态代理,我想多说一点,因为感觉自己理解的还是不够扎实,动态代理主要涉及到了java.lang.reflect.InvocationHandler接口的学习,java.lang.reflect.Proxy中的newProxyInstance(ClassLoader loader, Classs<?>[] interfaces, InvocationHandler hander)方法,是重点,重点要学习其中的原理,每一个动态代理的实例都是运行时有代理Proxy的newProxyInstance的方法进行动态创建的代理类,该类宣称实现了对应的接口,在执行时实际上是InvocationHandler(调用处理机)的invoke()方法,该方法会调用接口的方法进行处理。需要注意的是生成的动态代理实例既不是代理类,也不是接口实现类,而是系统在运行期间动态生成的代理实例$Proxy,这是需要注意的。

     明天估计公司也不忙,打算再看下spring中的内容。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics