整合Java內容倉庫和Spring

來源:互聯網
上載者:User

儲存各種資訊對於應用程式來說非常平常,大多數時候它們是儲存在關係資料 庫中。資料庫處理規範資料類型十分在行,但是在處理如映像、文檔等位元 據時卻不是那麼得心應手。儘管可以用檔案系統作為替代——而且它們還提供了 更好的效能。但它們既沒有提供用於搜尋資訊的查詢語言,也沒有提供表示關係 或事務的概念。

在很多情況下,允許第三方訪問這些儲存資料(隨著應用程式的不斷擴充,這 成為一個典型的需求)是一個漫長而複雜的過程(它們不會在一夜之間完成)。 內部儲存結構很容易影響API架構,以及資訊檢索與遍曆的方式。

什麼是JSR-170

幸運的是,被稱為Java內容倉庫(Java Content Repository,JCR)的JSR- 170,試圖以獨立於具體實現的方式解決這些(以及其它)問題。即,不論底層資 源(如,資料庫,本地或虛擬檔案系統)是什麼,API都將相同。在資料存放區之上 ,JCR提供諸如訪問粒度控制、版本控制、內容事件、全文檢索索引和過濾等內容服務 。由Day Software領導的JSR-170背後的專家組令人印象深刻,包括內容管理系統 (CMS)供應商Vignette、Hummingbird Ltd.、Stellent和通用Java驅動解決方案 供應商,如BEA Systems、IBM和Oracle。該規範很可能成為內容管理和文檔儲存 方面事實上的標準。

經過幾乎2年半的努力,工作最終於2005年6月完成,在javax.jcr包中,API包 含了大約50個類(主要是介面和異常)。2006年早些時候,發布了初始1.0版本的 參考實現(JackRabbit)。

JSR-170概覽

Java內容倉庫建立在倉庫(除了是“用於安全地儲存貨物的地點”的通常含義 之外)概念之上,它提供了幾個操作資料的特性。倉庫使用“樹結構”儲存資訊 ,如下圖,樹由節點和屬性群組成。圓圈代表節點,方框代表屬性。1個節點有且只 有1個父親,有任意數目的孩子(子節點)和任意數目的屬性。1個屬性有且只有 一個父親(它是節點),它沒有子節點,由一個名字和一個或多個值組成。屬性 值的類型可以是:布爾(Boolean)、日期(Date)、雙精(Double),長整 (Long),字串(String)或流(Stream)。只有屬性可以被用來儲存資訊, 節點則被用來建立樹內部的“路徑”。在某種程度上,這棵樹類似檔案系統的結 構,節點是目錄,屬性是實際的檔案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.