Apache Graffito是一个用于建立一个基于应用程序目录的开源的框架。它提供的功能包括版本控制,协作编辑,发布工作流,序列,查询等等。并且支持多种文档类型如:XML,HTML,PDF, MS OFFICE,OPEN Office, RDF等等。它是对于JCR API的一种扩展,或者说是加强了” business logic”,使得访问JCR Node和该Node的property更加附和真正的商业对象(POJO)的需要。这里我要介绍的是它提供的一个独立的JCR Object/Content 映射框架。
让我们看一下他的一个实现方式吧:
他的O/C Mapping有两种实现方式,一种就是使用Xml描述文件,另一种就是使用Annotation。使用Annotaion这里就不多说了。这里具体看一下多版本的“一对多”的Xml下的实现方式。
xml 代码
- <class-descriptor className="com.impl.MappingObject1" jcrMixinTypes="mix:versionable">
-
- <collection-descriptor fieldName="list" jcrName="list" elementClassName="com.impl.MappingObject2"/>
- <!---->class-descriptor>
- <class-descriptor className="com.impl.MappingObject2">
-
- <!---->class-descriptor>
就这样的简单的描述文件的配置我们就可以实现,对象到内容的映射关系了。全部的映射对象都会以节点的形式被存入JCR 库中,而List内的MappingObject2对象会以MappingObject1的子节点的方式存入。当查询时我们也可以直接通过Query来找到相关条件的MappingObject2。
<o:p> </o:p>虽然该项目目前还没有Release版本,但基础Mapping关系已经完成,可以通过SVN来获得源码,自行打包即可。至少我已经把它JCR O/C mapping的功能用在了实际项目中了。
分享到:
相关推荐
在商业项目中使用Graffito字体,必须确保拥有适当的授权。许多字体设计师或公司会提供商业许可,购买后方可合法使用。未获得授权而擅自使用可能会引发法律纠纷。 6. **搭配与组合**: 为了平衡Graffito的强烈视觉...
Graffito_exe_v1.3.6.zipGraffito_exe_v1.3.6.zipGraffito_exe_v1.3.6.zipGraffito_exe_v1.3.6.zipGraffito_exe_v1.3.6.zip
Graffito是一个开源的内容管理系统(CMS),它由Apache Software Foundation开发和支持。该系统旨在提供一套完整的解决方案,用于管理和发布各种类型的内容,包括但不限于文本、图像和多媒体文件。Graffito的设计目标...
"【WordPress插件】2022年...泰森云每天更新发布最新WordPress主题、HTML主题、WordPress插件、shopify主题、opencart主题、PHP项目源码、安卓项目源码、ios项目源码,更有超10000个资源可供选择,如有需要请站内联系。
- **Graffiti**:涂鸦,一种在公共或私人空间上进行的非授权艺术表现形式,可以是单个作品(graffito)或一组作品(graffiti)。 - **Vandal**:故意破坏公共财产的人,与涂鸦文化中的破坏行为有关。 - **...