首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是OCM还是JCR中的节点?

是OCM还是JCR中的节点?
EN

Stack Overflow用户
提问于 2013-05-18 19:00:52
回答 1查看 1K关注 0票数 2

我们正在开发一个基于JCR/Sling/JSP/Felix/等的CMS。

到目前为止,我发现使用节点是非常直接和灵活的。但我担心的是,随着时间的推移,它可能会变得太难维护和管理。

那么,投资使用OCM是明智的吗?这会不会只是一层额外的复杂性?如果有的话,OCM的真正好处是什么?或者对我们来说,更好的做法是坚持使用节点?

最后,如果我们要沿着这条路走下去,Jackrabbit是不是我们的最佳选择?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-19 05:16:20

根据我的个人经验,我可以说这完全取决于你的情况,OCM对你的项目是否是一个有用的工具。

使用OCM的真正问题(根据我的个人经验)是,当存储库中现有持久化数据(作为对象)中使用的类的定义发生更改时。例如:您发现有必要更改类的某些成员和方法以与功能更改相匹配。我的意思是,存储库中持久化数据对象的类定义不再与实际类的定义相匹配。当持久化数据保存到jcr存储库时,它通常以java在序列化方面理解的格式保存。这意味着当所用类的定义发生变化时,java不能再正确地解释存储库中保存的数据。这个问题往往会导致复杂的部署,您需要将旧的持久化数据对象转换为新的定义,并将它们再次保存在存储库中,以确保您仍然可以使用“旧的”但仍然需要的持久化数据。

(在我看来)真正起作用的是使用一个框架,该框架允许将节点和节点属性直接映射到java对象(例如,通过使用注释),反之亦然(将java对象作为JCR节点持久存储到存储库,其中java成员字段是实际的节点属性)。这样,您就可以坚持使用jcr (带属性的节点)的数据表示形式,并且仍然可以将它们映射到java类的成员。

我以前在cms (Adobe的)中使用过这样的框架,尽管我必须指出这是在OSGI上下文中(但原理仍然存在)。所使用的框架基本上允许最大限度的灵活性,并将java对象持久化为JCR节点,反之亦然。因为它直接映射到jcr定义,所以类和成员中的代码更改只是更改注释,旧的持久化数据仍然是可用的,而不需要做太多工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16623514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档