论坛首页 Java企业应用论坛

学习Spring必学的Java基础知识(2)----动态代理

浏览 82612 次
该帖已经被评为良好帖
作者 正文
   发表时间:2012-05-29  
看到这边文章,我不得不登录,不得不再次进入iteye(尽管首页变得很垃圾 自从改版后几乎很少来),接着我就不得不发表言论~!楼主辛苦了,讲的很精细!
0 请登录后投票
   发表时间:2012-05-30  
楼主辛苦了!讲的相当详细,学习受用了!
0 请登录后投票
   发表时间:2012-05-31   最后修改:2012-05-31
目前动态加载生成class已很普遍,例如jdk的proxy以及cglib动态修改字节,不过,这样就造成了一个问题,最终生成的class的到底是什么样呢?其中针对jdk的动态生成,可以利用ProxyGenerator.generateProxyClass,获取一个式样的例子;针对cglib需要设置DebuggingClassWriter.DEBUG_LOCATION_PROPERTY属性,据说可以把内存里的类生成到文件里去。不知道有没有什么方法,可以获取文件或内存,普通或泛型的类的字节输出到指定目录下,然后可利用反编译工具查阅源码。
目前尝试的解决方案,主要是利用ClassLoader,
Java代码 
Test.class.getResourceAsStream("Test.class") 
利用普通对象自身的类加载器可以获取到源码,但是动态的位于内存里的类就无法获取到。
不知道有没有其他的方法,多谢!
可关注问题http://www.iteye.com/problems/84235
0 请登录后投票
   发表时间:2012-06-01  
对spring初学者非常有帮助
0 请登录后投票
   发表时间:2012-06-02  
不能理解cglibproxy那一段中把MethodProxy称之为代理类实例,如果只是代理类实例,他怎么知道是哪个方法呢,而且看类名的直译是方法代理
public class MethodProxy
extends java.lang.Object
Classes generated by Enhancer pass this object to the registered MethodInterceptor objects when an intercepted method is invoked.
看这段doc的意思应该是当有方法被截获时,cglib产生的代理类把这个方法代理传递给了注册过的MethodInterceptor实例,看例子好像是callback中set的那个对象。
0 请登录后投票
   发表时间:2012-06-21  
敢于在JE分享书籍内容的作者都是真的猛士
0 请登录后投票
   发表时间:2012-08-22  
之前对代理总是模模糊糊的,通过aop的实例,现在终于有了一个深刻的认识
0 请登录后投票
   发表时间:2012-10-09  
也是属于只看不回复那一类人,但看这篇文章,不得不回复了,条理清晰,浅显易懂,不得不支持下!
0 请登录后投票
   发表时间:2012-10-10  
xchao 写道
也是属于只看不回复那一类人,但看这篇文章,不得不回复了,条理清晰,浅显易懂,不得不支持下!


  潜久了 浮出来呼吸一下鲜新空气有利于健康 
0 请登录后投票
   发表时间:2012-12-14  
讲的真的很详细,只要有耐心就能看懂,十分感谢,我会一直支持楼主的
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics