为什么使用Apache Sling进行JCR?

时间:2018-04-17 17:42:43

标签: apache adobe sling

从AEM的文档中可以看出:

AEM is built using Apache Sling, a web application framework based on REST principles 
that  provides  easy  development  of  content-oriented  applications.

为什么使用Apache Sling(使用HTTP)而不是使用Jackrabbit或CRX(不使用HTTP)创建AEM?

如果内容存储库位于另一台机器上,我可以理解它的用法,例如在您使用运行模式作者并且资源在另一台机器上的情况下,但我不明白为什么它用于实现AEM

1 个答案:

答案 0 :(得分:2)

由于以下原因和更多原因:

  • 它抽象出JCR API,这非常麻烦
  • JCR实现基本上只是在Felix中运行的OSGI组件(可能还有其他OSGI运行时),而Sling只是从中获取数据。 JackRabbit本身或OAK都可以被不同的持久层替换。 Sling还提供API以使用自己的API访问其他数据存储。
  • Sling让您可以非常轻松地从内部结构中抽象出内容的表示。
  • 它提供了一致的组件api,可以用来在JCR之上实现真正的应用程序,同时提高工作效率。它主要来自#2
  • HTTP(Sling使用的)是一种界面,提供各种方式来传递内容,并且更容易嵌入到复杂的网络基础架构中,因为Web上运行它。

您不需要Sling,但是当您构建Web应用程序时,它显然会提高您的工作效率,因为它是一个灵活的表示层。