通用数据推送 (4)-castor的使用

http://tech.ddvip.com   2008年08月21日    社区交流

内容摘要:Castor 有内置的规则定义本文的这一部分所描述的缺省映射。

  这个通用的推送做了很久了,来早就想把它的思路整理一下。终于,想做下来整理的时候很快又发现不知道该怎么说了。

  还是硬着头皮往下写吧。

  那就先说说castor 吧。由于在我们的推送配置是相对比较复杂的,不管是自己通过DOM或者SAX的调用来实现回事相当麻烦的。比如说我们根据我们的配置xml , 需要定义一些对象如config,task,source。。。(都对应我们的xml)。那么config下面是可以有不确定个数的task,task下又可以有不确定个数的source,而source下又可以有不确定个数source。这样在在初始化的时候要做大量的对List的操作。一个字麻烦。

  Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射功能。它主要API和数据接口为:JDO-like, SQL, OQL, JDBC, LDAP, XML, DSML。它支持分布式目录事务处理和时间;提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。其中最重要的就是其XML映射机制和其独创的Castor JDO的机制了。我们就是使用了castor xml。

  XML映射机制

  组织(Marshalling)是为内存中的对象生成 XML 表示的过程。与 Java 序列化一样,这种表示需要包含所有依赖的对象:我们的主对象引用的对象、那些对象引用的对象,等等。

  解组(Unmarshalling)是与组织相反的过程,在内存中根据 XML 表示构建一个对象(和依赖的对象)。

  映射(Mapping)是用于组织和解组的一套规则。 Castor 有内置的规则定义本文的这一部分所描述的缺省映射。

  就以,我们的配置文件为例:

  xml 代码

  <sourceid="1"name="website"isTranstion="false"isMuTheard="true"futrueid="ID">  

责编:豆豆技术应用

正在加载评论...