论坛首页 Java企业应用论坛

AOP的实现机制

浏览 129908 次
该帖已经被评为精华帖
作者 正文
   发表时间:2011-10-19  
支持楼主,楼主很有诚心
0 请登录后投票
   发表时间:2011-10-19  
太好了,特别适用!
0 请登录后投票
   发表时间:2011-10-20  
楼主的整理很不错,
甚至可以看到Without EJB中“基于AOP概念的声明性中间件”章节的影子.
0 请登录后投票
   发表时间:2011-10-20   最后修改:2011-10-20
kakaluyi 写道
ProxyGenerator.generateProxyClass()的方法比放射还要更高级一点,这个是动态生成代理类的方法,而不是在运行时候动态生成实例,这种flexible的方式很值得一些需要运行动态生成代码的项目学习。

的确是动态生成代理类的方法,但是也动态生成了实例。以下是该方法的源码,详情参见原文。
//把handler传入构造方法生成实例    
return (Object) cons.newInstance(new Object[] { h }); 
0 请登录后投票
   发表时间:2011-10-20  
写的很好,可以作为学习资料,感谢
0 请登录后投票
   发表时间:2011-10-20  
不错的资料,总结的挺好
看得出用了不少心思,值得推荐的文章
0 请登录后投票
   发表时间:2011-10-20   最后修改:2011-10-20

//循环生成方法体代码(省略)   
13.//方法体里生成调用InvocationHandler的invoke方法代码。(此处有所省略)   
14.this.cp.getInterfaceMethodRef("InvocationHandler", "invoke", "Object; Method; Object;")   
15. 
16.//将生成的字节码,写入硬盘   
17.localFileOutputStream = new FileOutputStream(ProxyGenerator.access$000(this.val$name) + ".class");   
18.localFileOutputStream.write(this.val$classFile);  

有个问题弄不清楚   .//将生成的字节码,写入硬盘   
  我怎么就找不到这个生成动态代理的文件  应该已经写到磁盘上了



bin目录下面为什么没有这个文件呢
  • 大小: 4.7 KB
0 请登录后投票
   发表时间:2011-10-20   最后修改:2011-10-20
刚在代码中找到了这个


为什么找不到生成的文件?????
  • 大小: 6.4 KB
0 请登录后投票
   发表时间:2011-10-20  
写的真不错!加精了!
0 请登录后投票
   发表时间:2011-10-20  
楼主 牛逼
0 请登录后投票
论坛首页 Java企业应用版

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