构建Apache Sling,Felix,Jackrabbit项目的目的是什么?

dev*_*sda 19 apache open-source jackrabbit apache-felix sling

我在这里问一个非常基本的问题.

问题是

我正在我的项目中使用Apache Sling,Apache Jackrabbit,Apache Felix.我试图理解为什么这些软件是由Apache开发的.我在互联网上尝试了很多,但我没有找到任何博客或wordpress博客,或任何有用的youtube视频解释所有这些项目.你能解释一下这些项目吗?

Why these projects developed?

What they do ?

and more questions like this
Run Code Online (Sandbox Code Playgroud)

以前我发现Apache Hadoop也有同样的疑问,但我在网上找到的所有资料都足以让我了解这个项目.这次我和Sling,Felix,Jackrabbit一起挣扎.

我将非常感谢你.等待你的回应.

Tho*_*ler 33

Apache Jackrabbit,Apache Sling和Apache Felix的组合允许您构建Web应用程序.

Apache JackrabbitJCR API的参考实现.在JCR API是管理内容库; 例如,管理网络内容.内容存储库是文件系统和数据库之间的混合.

JCR API专门用于处理Web内容.为什么不使用JCR API,为什么不使用关系数据库API?URL是分层的,就像在文件系统中一样.关系数据库不容易支持分层访问.为什么不使用文件系统API?因为JCR支持文件系统API不支持的事务,版本控制和许多其他功能.

Apache Sling是一个基于JCR API的Web框架,它利用了JCR API提供的功能(15分钟介绍).

Apache Felix是一个OSGi容器.它允许在Web服务器运行时无缝地启动,停止和替换Web应用程序的组件(在某种意义上是jar文件).这意味着它允许您更改应用程序而无需重新启动服务器.

  • 我对JackRabbit和Felix有所了解。但是,给索林的陈述完全被我反感。您能再向我解释一下Sling吗? (2认同)

san*_*zky 19

Sling可以用非常简单的术语描述为JCRREST API.您可以使用http请求来管理存储库中的内容.

此外,Sling提供了一种机制,以不同的方式呈现内容以供Web使用.您可以在Felix容器中使用脚本(例如JSP)和java代码(servlet,pojos等)来处理请求并发送请求.

当对特定节点发出请求时,Sling会查找名为的属性sling:resourceType,这是用于呈现脚本的查找键.然后使用节点作为输入执行适当的脚本.

您可以为渲染器编写不同类型,然后使用它以不同方式显示您的内容.

例如,您可以编写两个脚本full.json.jsp和short.json.jsp,然后使用它们以两种不同的方式呈现相同的节点:

/content/app/node.full.json 
Run Code Online (Sandbox Code Playgroud)

要么

/content/app/node.short.json.
Run Code Online (Sandbox Code Playgroud)

Sling基本上匹配请求URL中的标记以选择适当的脚本.

他们有一个非常好的备忘单,解释了请求解析和渲染的工作原理

它比这更复杂,因为一切都是在资源和组件中组织的.您想查看他们的网站以获取更多信息