什么是内容存储库的优点(不是谈论CMS的)

时间:2012-07-11 18:41:45

标签: jackrabbit content-repository

鉴于很多人使用内容存储库。一定有充分的理由。我正在构建一个需要存储内容的新Web应用程序。有人能帮助我理解这个吗?

使用像Apache Jackrabbit这样的内容存储库有什么好处,而不是编写自己的代码/ API来存储图像或文本页面?编写自己需要时间等,但实现和学习内容存储库API等新框架也是如此。在我看来,如果您需要增强或修复它,您知道自己的代码并拥有直接的专业知识。使用另一个框架,你需要学习它的缺点,并且修改你知道的不知道的代码总是更容易...即你不知道底层框架代码以及你自己的代码。

正如我所说,很多人都使用它们。必须有一个理由。我不能把它视为另一个“每个人都在使用它们,所以我们也应该这样做。”至少我希望不是这样。 :)

3 个答案:

答案 0 :(得分:13)

JCR存储库允许您将所有内容(从结构化数据库类型数据到大型多媒体文件)存储在一个地方并使用单个API,这非常方便,使您的代码更简单,避免了两者之间的阻抗不匹配您在基于内容的系统中通常拥有的文件和数据。

JCR还提供了许多您不必自己构建或组装的基础结构功能:搜索(包括全文),观察(当某些内容发生变化时的回调)版本控制,数据类型包括多值,有序节点,等...

如果你允许一个无耻的插件,http://java.dzone.com/articles/java-content-repository-best的“JCR - 两全其美”文章更详细地描述了这一点,并提供了JCR规范的阅读清单,这应该可以让你获得一个好的概述没有阅读整个事情。

本文使用Apache Sling作为示例,它结合了JCR存储库提供了一个非常好的(IMO,但作为Sling提交者,我有偏见;-)平台,用于基于内容的应用程序。

答案 1 :(得分:8)

我最近的项目涉及两种选择:具有多级缓存机制的定制数据存储(MySQL和图像文件)以及基于JCR的商业存储库。 一些想法:

从短期来看,DIY解决方案可以降低复杂性:您只需构建和学习所需内容即可。并且至少有机会进行优化 适合您特定应用程序需求的数据存储 - 更可能的检索速度,但最重要的可能是存储空间,安全性或可靠性问题。

然而,从长远来看,你正在寻找一项重要的工作,将本土系统扩展到新的内容类型(视频,例如)或提供新的功能(也许, 版本)。

此外,很难将数据存储方法的选择与内容提供商用于填充和维护数据存储的工具选择分开。你必须付出代价 您的作者不仅仅是带有textarea和提交按钮的HTML表单。

答案 2 :(得分:2)

这与standardization的优点有关:兼容性和可互换性。如果每个人都编写自己的库和API,就没有兼容性和可互换性,从而导致更高的成本。