2

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

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

那么,投资使用 OCM 是否明智?它只是增加了一层复杂性吗?如果有的话,强迫症的真正好处是什么?还是我们坚持使用 Nodes 更好?

最后,如果我们要走这条路,Jackrabbit OCM 对我们来说是不是最好的选择?

谢谢你。

4

1 回答 1

2

以我个人的经验,我可以说,OCM 是否对您的项目有用,这在很大程度上取决于您的情况。

使用 OCM 的真正问题(根据我的个人经验)是存储库中现有持久数据(作为对象)中使用的类的定义发生了变化。例如:您发现有必要更改类的某些成员和方法以匹配功能更改。我的意思是存储库中持久数据对象的类定义不再与实际类的定义匹配。当持久化数据被保存到 jcr 存储库时,它通常以 java 在序列化方面理解的格式保存。这意味着当使用的类的定义发生变化时,存储库中保存的数据不能再被java正确解释。

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

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

于 2013-05-18T21:16:20.423 回答