关于静态代理我就不说了,完全是自己的思想去实现。
动态代理的例子我也不写了,我这里仅仅写几个简单的类来说明一下
interface person
class teacher implements person
class proxyfactory implements invacationhandle
class proxyTest
先说下我的问题在那里,问题就在proxyfactory中的实现invactionhandle的invoke方法,
问题1:第一个参数proxy的作用
问题2:当我debug的时候,这个方法返回的是个null
问题3:当method的invoke方法的object参数如果换成proxy的话,会是死循环
google上看到一个高手是这么说的
1.当debug的时候看到proxy并不是null,而是$proxy ,而且被绑定到proxyfactory对象名为h
2.另一个哥们说proxy看似代理对象,其实仅仅是为了检查权限的
请高手们给个详细的解释,期待中!不知道原理是很痛苦的事情。
++++++++++++++++++++++++++++++++++
新发现,补充一下:
1.proxy实际就是生成的代理对象,但是不知道为什么要传入那个参数。
2.生成代理对象虽然不是为null但是调用一些hachcode等方法时会报空指针异常
3.我的推测是当生成的这个代理对象去执行一个方法的时候,因为这个代理对象本身是一个$proxy0(debug的时候看到的),肯定jvm对这样的对象有一定的监听机制,监听到以后会去调代理对象所属的invocationhandle的invoke方法,吧method以及args都传递过去,但是现在还不明白为什要吧proxy也传递过去。
待续.......
++++++++++++++++++++++++++++++++++
再补充:
又另一个兄弟这么说:
说动态代理实际是解析被代理对象的class文件,加入新的东西,用流的方式处理的。不知道正确不,也同样希望高手给个答案。
分享到:
相关推荐
java动态代理实例 要想理解拦截器的知识 最好要先理解java动态代理这块
java动态代理 完整版 java动态代理 完整版 java动态代理 完整版 java动态代理 完整版 java动态代理 完整版
Java 动态代理详解(学习资料);Java 动态代理详解(学习资料);Java 动态代理详解(学习资料);Java 动态代理详解(学习资料);Java 动态代理详解(学习资料);
对代理模式与Java动态代理类的理解说明
适用于初探java动态代理模式,精简易懂。
java 动态代理 简单实例 新手看看
更好的了解java动态代理的原理!
Java实现动态代理的两种方式。 相对来说cglib更加方便。可以实现为实现接口的类(非final类)
Java动态代理的helloworld,抛砖引玉吧
用Java动态代理实现AOP,讲的很好(用Java动态代理实现AOP)
JAVA静态代理和动态代理
详细介绍了开发java动态代理用到的相关类,和动态代理类的特点!最后以完整示例代码的形式,展现了java动态代理开发的过程!
讲述JAVA的动态代理的原理,以及通过JAVA的动态代理来实现AOP。简洁,易懂,学习AOP的入门级文档
Java 动态代理 借用电子商务模式来说明
一个简单的java动态代理的实例
描述java动态代理,说明了怎么实现java的动态代理
java jdk 动态代理 演示demo
java动态代理 经典文章(word 2007格式的) 要用word 2007看
Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类: (1) Interface InvocationHandler (2) Proxy:该类即为动态代理类,
Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类: (1) Interface InvocationHandler (2) Proxy:该类即为动态代理类,