日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JCR

發(fā)布時間:2023/12/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JCR 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引用:http://baike.baidu.com/view/486400.htm

JAVA內(nèi)容倉庫

  Java Content Repository API(JSR-170)試圖建立一套標準的API去訪問內(nèi)容倉庫。如果你對內(nèi)容管理系統(tǒng)(CMS)不熟悉的話,你一定會對內(nèi)容倉庫是什么感到疑惑。你可以這樣去理解,把內(nèi)容倉庫理解為一個用來存儲文本和二進制數(shù)據(jù)(圖片,word文檔,PDF等等)的數(shù)據(jù)存儲應(yīng)用程序。一個顯著的特點是你不用關(guān)心你真正的數(shù)據(jù)到底存儲在什么地方,是關(guān)系數(shù)據(jù)庫?是文件系統(tǒng)?還是XML?不僅僅是數(shù)據(jù)的存儲和讀取,大多數(shù)的內(nèi)容倉庫還提供了更加高級的功能,例如訪問控制,查找,版本控制,鎖定內(nèi)容等等。

  一段時間以來市場上出現(xiàn)了各個廠家開發(fā)的不同的CMS系統(tǒng),這些系統(tǒng)都建立在他們各自的內(nèi)容倉庫之上。

  問題出現(xiàn)了,每個CMS開發(fā)商都提供了他們自己的API來訪問內(nèi)容倉庫。這對應(yīng)用程序的開發(fā)者帶來了困擾,因為他們要學(xué)習(xí)不同的開發(fā)商提供的API,同時,他們的代碼也與這些特定的API產(chǎn)生了綁定。

  JSR-170正是為解決這一問題而出現(xiàn)的,它提供了一套標準的API來訪問任何數(shù)據(jù)倉庫。通過JSR-170,你開發(fā)代碼只需要引用 javax.jcr.* 這些類和接口。它適用于任何兼容JSR-170規(guī)范的內(nèi)容倉庫。

  我們將通過一個例子來逐步了解JSR-170。

  為什么需要 Java Content Repository API

  隨著各個廠家各自的內(nèi)容倉庫實現(xiàn)數(shù)量的增長,人們越來越需要一組通用的編程接口來使用這些內(nèi)容倉庫,這就是JSR-170所要做的東西。它提供一組通用的編程接口來連接內(nèi)容倉庫。你可以把JSR-170理解為和JDBC類似的API,這樣你可以不依賴任何具體的內(nèi)容倉庫實現(xiàn)來開發(fā)你的程序。你可以直接使用支持JSR-170的內(nèi)容倉庫;或者如果一些廠家的內(nèi)容倉庫不支持JSR-170則可以通過這些廠家提供的JSR-170驅(qū)動來完成從JSR-170與廠家特定的內(nèi)容倉庫的轉(zhuǎn)換。

  JSR-170 API對不同的人員提供了不同的好處。

  ●對于開發(fā)者無需了解廠家的倉庫特定的API,只要兼容JSR-170就可以通過JSR-170訪問其倉庫。

  ●對于使用CMS的公司則無需花費資金用于在不同種類CMS的內(nèi)容倉庫之間進行轉(zhuǎn)換。

  ●對于CMS廠家,無需自己開發(fā)內(nèi)容倉庫,而專注于開發(fā)CMS應(yīng)用。\

  JCR定義的內(nèi)容倉庫模型是一個樹狀結(jié)構(gòu),樹上的元素(Item)分為兩類:節(jié)點(node)和屬性(property)。整棵樹具有單根結(jié)構(gòu)。從根開始,內(nèi)容元素的定位采用UNIX文件系統(tǒng)風(fēng)格,例如“/A/B/ccc”(根下面A節(jié)點的B子節(jié)點的ccc屬性),相對定位符(“.”和“..”)也是可用的。每個屬性有且僅有一個父節(jié)點,不能有子元素。每個節(jié)點可以有一個或多個父節(jié)點(根節(jié)點無父節(jié)點),也可以有任意多個子節(jié)點或?qū)傩浴W⒁?#xff0c;節(jié)點可以有多個父節(jié)點,也就是說可以從不同的路徑導(dǎo)航獲得同一內(nèi)容,這是網(wǎng)站常見的一個需求(來自不同欄目的兩個鏈接指向同一篇文章)。

  除了Node和Property之外,API中還有幾個重要的對象。Repository代表整個內(nèi)容倉庫,Credentials代表一個用戶身份,Ticket代表進入該內(nèi)容倉庫的門票。獲得內(nèi)容根節(jié)點的代碼大致如下:

  Repository repository = (Repository)java.rmi.Naming.lookup("MyRepo");

  Credentials credentials = new SimpleCredentials("MyName", "MyPassword".toCharArray());

  Ticket myTicket = repository.login(credentials, "MyWorkspace");

  Node root = myTicket.getRootNode();

  從root節(jié)點就可以遍歷訪問整課內(nèi)容樹。Ticket對象也支持通過絕對路徑或者UUID直接獲得某一內(nèi)容元素(節(jié)點或?qū)傩?#xff09;。

總結(jié)

以上是生活随笔為你收集整理的JCR的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。