話說很久以前,江湖上出了一個(gè)叫作jcr的兵器,這個(gè)東西呢確實(shí)有那么一點(diǎn)點(diǎn)的用處,于是他們就在小眾的圈子里開始流行,于是各門各派都開發(fā)出來屬于自己的jcr,但是后來發(fā)現(xiàn),問題來了,由于各門派都有自己的jcr,使得俺們這些小程序員需要不停的學(xué)習(xí)各個(gè)jcr的api。顯然這個(gè)時(shí)候需要盟主出來貢獻(xiàn)點(diǎn)力量,于是,sun盟就出來說話啦:同志們啊,你們這些瞎搞是不行的,我來給你們制定一個(gè)規(guī)范,你們按照我的標(biāo)準(zhǔn)來搞,怎么樣。顯然江湖人士都習(xí)慣了老大的作風(fēng),于是紛紛同意。后來經(jīng)過很多磚家的研究,終于制定出來一份規(guī)范,內(nèi)部代號(hào)170. 說了半天光說歷史了,這玩意究竟是個(gè)什么鳥東西,好不好使呀。那么來一段盟主官方發(fā)言人的聲明: 內(nèi)容倉庫是一個(gè)高級(jí)的信息管理系統(tǒng),該系統(tǒng)是是傳統(tǒng)的數(shù)據(jù)倉庫的擴(kuò)展,它提供了諸如版本控制、全文檢索,訪問控制,內(nèi)容分類、訪問控制、內(nèi)容事件監(jiān)視等內(nèi)容服務(wù)。第一次看到官方解釋之后,ahuaxuan好像有個(gè)初步的概念,但是有點(diǎn)抽象,不夠具體化,于是又上網(wǎng)找啊找啊找啊,代碼看啊看啊看啊,終于,讓我找到j(luò)ackrabbit(后述)里面有一個(gè)DataStore類,該類有兩個(gè)實(shí)現(xiàn),DbDataStore,和FileDataStore,于是,終于有點(diǎn)明白了,原來內(nèi)容倉庫可以保存元數(shù)據(jù),還有二進(jìn)制數(shù)據(jù),那么是不是我們應(yīng)用中的類似數(shù)據(jù)都可以放進(jìn)去呢,正如一些文章中講到的,我們可以把圖片啊,文檔啊,文本啊等等都放到內(nèi)容管理系統(tǒng)中去呢。 歷史也知道了,功能也大概明白了(說得不夠全面,歡迎大家糾正),下面我們得找一個(gè)實(shí)現(xiàn)了,要找個(gè)開源的東西嗎,當(dāng)然首先考慮考慮apache的項(xiàng)目了。哦,有一個(gè),jackrabbit(http://jackrabbit./),下載下來研究研究先。 學(xué)習(xí)任何新的框架都離不開例子,可運(yùn)行的例子可以加深我們對(duì)框架的理解。下面我們就把jackrabbit給download下來,跑一個(gè)例子試試看。 這個(gè)例子是官方的例子,這個(gè)例子形象的說明了jackrabbit的一般訪問方法:
看完這個(gè)例子(項(xiàng)目打包到附件中),有什么收獲呢,從ahuaxuan看來,有三個(gè)收獲: 1, 明確了jackrabbit做crud的一般流程,從而為以后使用jackrabbit打下了不夠堅(jiān)實(shí)的基礎(chǔ) 2, 明確了jackrabbit中存儲(chǔ)數(shù)據(jù)的一般結(jié)構(gòu),顯然是一顆m叉樹。 3, Session的用法和db connection頗為類似,和hibernate中的session更為類似(后面的文章中我們還可以看到和hibernate session更為類似的設(shè)計(jì)理念)。 例子雖然簡(jiǎn)單,而且也有一定的含金量,但是事實(shí)上還是過于膚淺,作為技術(shù)人員是要有點(diǎn)追求的,要深入理解jackrabbit,那么下面的有兩步必須要做: 一, 分析jcr的域模型,和關(guān)鍵類的繼承體系 二, 分解jcr的crud主體流程,遞歸深入下去,這樣才能深刻理解其設(shè)計(jì)理念 三, 關(guān)鍵邏輯的算法 Ahuaxuan將會(huì)在后續(xù)的文章中和大家一起深入分析這些知識(shí)點(diǎn)。 最后附上可運(yùn)行的例子代碼,下載后直接導(dǎo)入項(xiàng)目 http://dl2./upload/attachment/0010/5175/483f81ce-7e51-3c58-bbb7-868559f8e641.rar
|
|