我可以看到,在AEM技术栈中有多个框架,如OSGi、JCR、CRX和Granite。但是我对JCR和CRX的使用和参与不清楚。能有人解释一下JCR和CRX在AEM中的作用吗?
JCR是Java内容库规范,Apache JackRabbit实现了该标准,CRX是基于JackRabbit的存储库。
Apache Jackrabbit是一个开源的内容存储库实现,完全实现了JCR API。
JCR(JSR-170)是内容存储库的标准Java API。它为Java应用程序提供了与内容存储库交互的接口,但它不提供存储库实现。
Adobe CRX是AEM中使用的商业内容存储库组件,它使用了Jackrabbit的某些元素(例如一些安全API)。CRX提供了额外的功能,如开发工具和集群能力,并且具有与Jackrabbit实现不同的存储机制。