手机站
网通分站
电信主站
密 码:
用户名:
热门关键字:  虚拟主机  cn域名  域名注册  非法  seo
当前位置 : 主页>程序设计>Java技术>列表

从Rails的活动记录说说元数据编程

来源:互联网 作者:west263.com 时间:2008-02-23 点击:
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
文章原题:跨越边界: 研究活动记录
作者是:Bruce Tate, 总裁, J2Life, LLC
原贴地址:http://www-128.ibm.com/developerworks/cn/java/j-cb03076/index.html?ca=dwcn-newsletter-java
这篇文章分析的是Rails所用到的活动记录,ActiveRecord的技术。活动记录要做的大概跟O/R mapping差不多。不过O/R mapping是基于映射的,就是把类和数据库对应起来,而活动记录是基于包装,wrappping的,就是直接生成一些包装数据库表的类。ActiveRecord用到了Ruby当中的反射和元数据编程技术,简单的来说,就是当你声明一个类继承于ActiveRecord的Base类时,那么在运行时,这个继承事件就会发送到Base类当中,Base类就能够做一些数据库反射之类的操作,获得这个子类所要包装的表,然后再动态的修改子类的实现,为他添加对应的属性和方法。也就是在O/R mapping当中,我们所要定义的属性和方法都能够通过这种元数据编程方式实现。这样做的好处就是,ActiveRecord的子类非常简单,如果你不需要特殊的操作,那么一句声明语句,声明你是扩展了Base类就可以完全搞定。
这种技术还是很有意思的,不过归根结底,这个技术也是用到了Ruby的反射和元数据编程,可惜元数据的能力就是Java所缺乏的,Java不提供这种动态的修改类代码的能力实在是丧失了不少有趣的应用。不过,还是有一些曲线救国的方式来大致达到这个效果,就是直接去hack虚拟机,在类装载的时候直接修改classfile的bytecode,这个方法估计以后会被用到的越来越多。

上一篇: 使用Fileupload上传组件
下一篇: Roller2.1的配置手册

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名
注册