隨筆-128  評(píng)論-55  文章-5  trackbacks-0
                 我們知道jndi是java的命名和目錄服務(wù)的api,為什么要有它了,是因?yàn)槲覀冊(cè)诰W(wǎng)絡(luò)條件下可能要查找和使用一些分布式的資源。好比我們現(xiàn)在使用的操作系統(tǒng),它本身有一個(gè)類似于jndi的東西,這樣我們才能找到和存放一些資源,如文件等。例如windows系統(tǒng)的分區(qū)和目錄,它就是一個(gè)目錄服務(wù),還有l(wèi)inux的以文件夾的方式也是相當(dāng)于一個(gè)目錄服務(wù);DNS就是一個(gè)命名服務(wù)等等,這些應(yīng)用都有jndi的影子。考慮在網(wǎng)絡(luò)條件下,我們要查找一個(gè)資源,我們不知道它所在的機(jī)器是什么操作系統(tǒng),采用的什么目錄和命名模式,所以sun提供了一個(gè)更高層次的接口,即jndi,讓我們查找和使用資源是忽略這些不同的地方。否則試想一下以windows的目錄結(jié)構(gòu)試著去匹配linux的目錄結(jié)構(gòu)肯定是不行的。

                sun給的jndi只是個(gè)接口,各家都有自己的實(shí)現(xiàn),這些實(shí)現(xiàn)就包括了一個(gè)統(tǒng)一的目錄結(jié)構(gòu)和查找(包括索引)。sun本身的jdk給了4種實(shí)現(xiàn),還包含另一種簡(jiǎn)單的以文件系統(tǒng)為命名服務(wù)的實(shí)現(xiàn)。

               通常我們?cè)诔绦蛑衝ew出Context(在目錄結(jié)構(gòu)中的每一個(gè)結(jié)點(diǎn)稱為context。每一個(gè)JNDI名字都是相對(duì)于context的)需要提前做些工作(如果是在j2ee容器中的代碼則不必),需要兩步,一是實(shí)現(xiàn)類的initcontextfactory,另一個(gè)就是provider_url,  它我感覺(jué)相當(dāng)于給出具體資源在什么位置,并且以什么協(xié)議的形式作為其目錄方案。有了這兩個(gè)我們就能new出context,然后lookup出資源。以文件系統(tǒng)為命名服務(wù)的更簡(jiǎn)單,它只須一個(gè)factory就可以了。



          Author: orangelizq
          email: orangelizq@163.com

          歡迎大家訪問(wèn)我的個(gè)人網(wǎng)站 萌萌的IT人
          posted on 2007-07-16 19:29 桔子汁 閱讀(268) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE
          主站蜘蛛池模板: 连云港市| 济阳县| 迭部县| 海宁市| 舞钢市| 威宁| 正宁县| 师宗县| 南通市| 石阡县| 乌恰县| 木兰县| 政和县| 丰顺县| 茶陵县| 平凉市| 邢台县| 德令哈市| 蛟河市| 固阳县| 迭部县| 贵德县| 清远市| 泗阳县| 瑞丽市| 沂源县| 隆尧县| 龙海市| 容城县| 津市市| 龙江县| 西峡县| 平罗县| 松溪县| 电白县| 乌鲁木齐市| 彰化县| 曲阜市| 马尔康县| 汽车| 乌什县|