java jcr使用_java – 什么时候使用JCR(内容存储库)超过其他选项?
JCR庫與RDBMS不同,因為JCR庫:
>是分層的,允許您在一個緊密匹配您的需求的結構中組織您的內容,相關信息通常存儲在一起,從而輕松導航
>是靈活的,允許內容適應和演進,使用可以完全“無模式”到完全限制性(例如,像關系數據庫)的節點類型系統,
>使用標準Java API(例如,javax.jcr)
>摘要信息真正存儲在哪里:許多JCR實現可以將內容存儲在各種關系數據庫和其他存儲中,有些可以通過JCR API公開非JCR存儲,有些可以將多個存儲聯合到單個虛擬存儲庫中。
>支持開箱即用的查詢和全文搜索
>支持事件,鎖定,版本控制和其他功能
你當然可以在你自己的應用程序中構建所有或部分功能,但這可能會遠離你的應用程序的主要目的。
什么樣的應用程序可以從這些功能中受益?內容管理系統已經使用了很長時間的存儲庫,JCR(和Jackrabbit)真的是因為需要一個通用的標準API來訪問不同的內容存儲庫(見JSR-170和JSR-283)。
另一個例子是文檔管理系統,其管理電子文件(其通常是紙質文檔的圖像)并提供搜索和查詢。 DMS已經使用了一段時間的倉庫。
工件管理系統可以使用存儲庫來管理數字工件(通常是文件)以及附加信息(元數據)。 JCR在這里工作得很好,因為您可以將元數據存儲在與文件相同的位置:那些理解這些額外的屬性可以看到它們,那些不在乎不必看到它們。我知道Artifactory是一個使用JCR的Maven存儲庫實現。還有用于管理Web服務工件,數據服務工件和測試工件的存儲庫。
但JCR存儲庫不是用于管理文件。 JCR使用節點層次結構的簡單概念,其中節點可以包含命名屬性(具有一個或多個值)和子級。允許的屬性和子節點完全由節點類型支配,節點類型可以根據需要在逐個節點的基礎上更改和混合。 JCR預定義了通常需要的一些內置節點類型,如用于表示存儲庫中的文件和文件夾的類型。您可以重用這些內置類型,擴展它們或編寫自己的類型。許多人主張使用mixin幾乎作為方面或方面,所以如果一個節點需要采取一個方面,你可以簡單地添加一個mixin到節點。
JCR旨在輕松支持將XML內容導入存儲庫,其中每個元素都映射到一個節點,每個屬性都映射到一個屬性。許多東西是使用XML(或YAML或JSON)表示的,所有這些都可以很容易地表示和存儲在JCR存儲庫中。作為示例,考慮存儲配置信息(通常可以存儲在多個XML文件中)的JCR存儲庫。 JCR可以對該信息進行版本化,允許從多個進程訪問它,啟用查詢和搜索,并在內容更改時通知應用程序。
有幾個很好的概述JCR與更多的細節和例子。其中一些是:
總結
以上是生活随笔為你收集整理的java jcr使用_java – 什么时候使用JCR(内容存储库)超过其他选项?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [luogu p2440] 木材加工
- 下一篇: OLTP+OLAP->HTAP