隨筆-128  評論-55  文章-5  trackbacks-0
                 我們知道jndi是java的命名和目錄服務的api,為什么要有它了,是因為我們在網絡條件下可能要查找和使用一些分布式的資源。好比我們現在使用的操作系統,它本身有一個類似于jndi的東西,這樣我們才能找到和存放一些資源,如文件等。例如windows系統的分區和目錄,它就是一個目錄服務,還有linux的以文件夾的方式也是相當于一個目錄服務;DNS就是一個命名服務等等,這些應用都有jndi的影子??紤]在網絡條件下,我們要查找一個資源,我們不知道它所在的機器是什么操作系統,采用的什么目錄和命名模式,所以sun提供了一個更高層次的接口,即jndi,讓我們查找和使用資源是忽略這些不同的地方。否則試想一下以windows的目錄結構試著去匹配linux的目錄結構肯定是不行的。

                sun給的jndi只是個接口,各家都有自己的實現,這些實現就包括了一個統一的目錄結構和查找(包括索引)。sun本身的jdk給了4種實現,還包含另一種簡單的以文件系統為命名服務的實現。

               通常我們在程序中new出Context(在目錄結構中的每一個結點稱為context。每一個JNDI名字都是相對于context的)需要提前做些工作(如果是在j2ee容器中的代碼則不必),需要兩步,一是實現類的initcontextfactory,另一個就是provider_url,  它我感覺相當于給出具體資源在什么位置,并且以什么協議的形式作為其目錄方案。有了這兩個我們就能new出context,然后lookup出資源。以文件系統為命名服務的更簡單,它只須一個factory就可以了。



          Author: orangelizq
          email: orangelizq@163.com

          歡迎大家訪問我的個人網站 萌萌的IT人
          posted on 2007-07-16 19:29 桔子汁 閱讀(258) 評論(0)  編輯  收藏 所屬分類: J2EE
          主站蜘蛛池模板: 天水市| 普格县| 密山市| 张家界市| 牡丹江市| 黄大仙区| 阿拉尔市| 临安市| 广东省| 合肥市| 张家港市| 黄浦区| 峨边| 元阳县| 通江县| 新余市| 徐汇区| 噶尔县| 湘潭县| 通州市| 迭部县| 灵山县| 南投县| 永泰县| 华坪县| 元朗区| 鄂托克前旗| 涞源县| 郑州市| 阳西县| 鄯善县| 闻喜县| 绥芬河市| 龙海市| 蓝山县| 绥宁县| 长葛市| 临朐县| 滨海县| 庆阳市| 那曲县|