从JCR和Jackrabbit开始,我不了解什么是工作空间以及如何使用它。为何首先将其命名为工作区?是像数据库这样的存储库,还是像表这样的工作区,还是像行一样的项目(或者差不多)?

最佳答案

每个JCR工作空间就像您内容树中的一个不同根,因此您可以在工作空间A中的/ foo和在工作空间B中的不同节点中拥有一个节点。

一个节点可以在其他工作空间中具有相应的节点:工作空间A的/ foo节点可以克隆到工作空间B中的/ foo,从而创建一个相应的节点。然后,这两个节点可以生存一段时间,同时保持相对应,这允许稍后通过一个JCR调用用另一个的内容更新一个。

这可用于内容登台,例如,其中一个工作区保存网站的实时内容,而另一个工作区保存已登台的内容。

我不确定与数据库的比较是什么,也许不确定具有某些功能的不同模式,这些功能允许使用另一组数据更新一组表。

在我的团队(Apache Sling,Adobe CQ / AEM)中,我们总是使用单个工作区,根据我的经验,多个工作区会使事情变得更复杂,透明度也不如我所愿。

http://wiki.apache.org/jackrabbit/DavidsModel规则3建议仅在需要clone(),merge()和update()时才使用工作空间,这在我看来是个很好的建议,在使用工作空间之前,我会认真检查这些方法是否满足我的需要。

09-26 21:32
查看更多