java和spring中的JCR是什么

java和spring中的JCR是什么,java,spring,jcr,Java,Spring,Jcr,我学习java spring hibernate MVC已经三个月了,对此我有了相当的了解。但我不明白JCR的意思 例如,我的意思是,在SpringMVC的简单webiste中,JCR(Java内容存储库)中可以完成哪些部分,尝试以独立于实现的方式解决这些问题(以及许多其他问题);也就是说,无论底层资源(例如数据库、本地或虚拟文件系统)如何,API都是相同的。JCR位于数据存储之上,提供内容服务,如粒度访问控制、版本控制、内容事件、全文搜索和过滤等。由Day Software领导的JSR-170

我学习java spring hibernate MVC已经三个月了,对此我有了相当的了解。但我不明白JCR的意思

例如,我的意思是,在SpringMVC的简单webiste中,JCR(Java内容存储库)中可以完成哪些部分,尝试以独立于实现的方式解决这些问题(以及许多其他问题);也就是说,无论底层资源(例如数据库、本地或虚拟文件系统)如何,API都是相同的。JCR位于数据存储之上,提供内容服务,如粒度访问控制、版本控制、内容事件、全文搜索和过滤等。由Day Software领导的JSR-170背后有一个令人印象深刻的专家组,其中包括内容管理系统(CMS)供应商,如Vignette、Hummingbird Ltd、Stellent和常见的Java驱动解决方案提供商,如BEA Systems、IBM和Oracle,该规范很可能成为内容管理和文档存储的事实标准


JCR将是替代JPA(Hibernate)的另一种持久性机制,JPA(Hibernate)对应用程序隐藏JDBC。理论上,模型中的Java类可能与现在的Java类相同。然而,如果模型中的任何类只是因为需要为JPA建模一些较低级别的数据结构而出现,那么JCR可能不需要这些类

您需要一个很好的理由用JCR替换JPA的现有用法。例如,您可能已经发现,使用JPA需要跳过许多额外的障碍,做一些您实际上不需要做的事情

话虽如此,JCR肯定有一些JPA没有的优势和能力:

  • JCR支持结构化数据、非结构化数据以及两者之间的一切。JCR允许一个灵活的模式,可以非常NoSQL化。JPA非常结构化,具有固定的模式
  • JCR是分层的——有些用例是非常分层的,使用关系模型来实现这一点可能非常困难/昂贵
  • JCR有内置的事件
  • 大多数JCR实现可以在各种系统中存储内容。有些甚至可以访问和联合其他系统中的现有内容
  • 字符串值没有长度限制
  • JCR支持全文搜索
  • JCR有多种查询语言,包括JCR-SQL2(非常类似SQL)
  • 有些库将Java类映射到您的节点结构,因此与JPA/Hibernate非常相似

  • 这完全取决于这些功能是否对您的应用程序有益。

    Re。关于何时使用JCR与关系数据模型的描述,请看。这让我大开眼界……

    抱歉,我不能完全理解,我的意思是,我使用spring MVC、mysql、hibernate构建了一个5页的网站。以及它的工作原理。JCR将在其中扮演什么角色。我的意思是JCR在我当前的场景中可以做什么。我的意思是,如果我想使用它,它将为我当前的站点添加什么额外的功能Randall::你能告诉我更多关于你在第8点提到的API的信息吗。将Java类映射到节点的API。有几个库在Java对象和JCR节点之间映射:chromatic()和Jackrabbit OCM()是我熟悉的两个库。就我个人而言,我不喜欢或不推荐这种框架,因为它基本上将节点模式与Java代码联系在一起,这使得在JCR中使用强大的模式灵活性非常困难(上面第1点)。