<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    和風(fēng)細雨

    世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運用之術(shù)自出。

    JNDI概述

    JNDI(Java Naming and Directory Interface)的中文意思是Java命名和目錄接口。
    借助于JNDI ,開發(fā)者能夠通過名字定位用戶,機器,網(wǎng)絡(luò),對象,服務(wù)。 JNDI的常見功能有定位資源,如定位到內(nèi)網(wǎng)中一臺打印機,定位Java對象或RDBMS(關(guān)系型數(shù)據(jù)庫管理系統(tǒng))等
    在EJB,RMI,JDBC等JavaEE(J2EE)API技術(shù)中JNDI得到了廣泛應(yīng)用。JNDI為J2EE平臺提供了標準的機制,并借助于名字來查找網(wǎng)絡(luò)中的一切對象。

    理解“命名和目錄服務(wù)”

    在掌握JNDI之前,開發(fā)者必須理解命名和目錄服務(wù)。
    名字類似于引用,即能標識某實體如對象,人等。在企業(yè)應(yīng)用中,經(jīng)常需要借助于名字實現(xiàn)對各種對象的引用,如借助于名字引用電話號碼,IP地址,遠程對象等。
    命名服務(wù)類似于話務(wù)員,如果需要打電話給某人,但又不知道他的電話號碼,于是將電話打到查詢臺,以便能夠詢問到用戶的電話號碼,打電話者需要提供人名給他。隨后,話務(wù)員就能查到那人的電話號碼。



    命名服務(wù)的功能

    將名字與對象綁定在一起,這類似于電話公司提供的服務(wù),比如將人名綁定到被叫端的電話。
    提供根據(jù)名字查找對象的機制。這稱為查找對象或者解析名字。這同電話公司提供的服務(wù)類似,比如根據(jù)人名查找到電話號碼。

    在現(xiàn)實的計算機環(huán)境中,命名服務(wù)很常見,如需要定位網(wǎng)絡(luò)中的某臺機器,則借助于域名系統(tǒng)(Domain Name System,DNS)能夠?qū)C器名轉(zhuǎn)化成IP地址。

    目錄對象和目錄服務(wù)

    在命名服務(wù)中,借助名字能夠找到任何對象,其中有一類對象比較特殊,它能在對象中存儲屬性,它們被稱之為目錄對象或稱之為目錄入口項(Directory Entry)。將目錄對象連接在一起便構(gòu)成了目錄(Directory),它是一個樹狀結(jié)構(gòu)的構(gòu)成,用戶可以通過節(jié)點和分支查找到每個目錄對象。
    目錄服務(wù)是對命名服務(wù)的擴展,它能夠依據(jù)目錄對象的屬性而提供目錄對象操作。

    JNDI的概念和主要用途

    為實現(xiàn)命名和目錄服務(wù),基于java的客戶端需要借助于JNDI系統(tǒng),它為命名和目錄服務(wù)架起了通信的橋梁。JNDI的主要用途有:
    開發(fā)者使用JNDI,能夠?qū)崿F(xiàn)目錄和Java對象之間的交互。
    使用JNDI,開發(fā)者能獲得對JAVA事務(wù)API中UserTransaction接口的引用。
    借助于JNDI,開發(fā)者能連接到各種資源工廠,如JDBC數(shù)據(jù)源,Java消息服務(wù)等。
    客戶和EJB組件能夠借助于JNDI查找到其他EJB組件。

    名字,綁定和上下文的概念

    JNDI中存在多種名字,一種是原子名,如src/com/sitinspring中的src,com和sitinspring;一種是復(fù)合名,它由0個或多個原子名構(gòu)成,如src/com/sitinspring。
    綁定就是將名字和對象關(guān)聯(lián)起來的操作。如system.ini綁定到硬盤中的文件, src/com/sitinspring/.classpath分別綁定到三個目錄和一個文件。
    上下文(Context)由0個或多個綁定構(gòu)成,每個綁定存在不同的原子名。如WEB-INF文件夾下分別含有.cvsignore和web.xml的文件名。在JNDI中, WEB-INF是上下文,它含有原子名.cvsignore和web.xml的綁定,它們分別綁定到硬盤中的文件。
    上下文中也允許存在上下文,它們被成為子上下文(subcontext),子上下文和上下文類似,它也能含有多個名字到對象的綁定。這類似于文件夾下含有子文件夾。

    命名系統(tǒng)和初始上下文

    命名系統(tǒng)由一套連在一起的上下文構(gòu)成,而且這些上下文使用了相同的命名語法??梢杂媚夸洏鋪眍惐冗@個概念。
    瀏覽命名空間的起點稱之為初始上下文(Initial Context),初始上下文類似于目錄樹中的根節(jié)點概念。

    借助于初始上下文,能夠開始命名和目錄服務(wù)。

    JNDI查找資源示例

    try {
      Context initCtx = new InitialContext();
      // java:comp/env是命名空間,相當于是本機JNDI資源引用根目錄
      Context envCtx = (Context) initCtx.lookup("java:comp/env");
      Member bean = (Member) envCtx.lookup("Member");

      System.out.print("member name=" + bean.getMemberName() + " age="
          + bean.getAge());
    } catch (NamingException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    JNDI有關(guān)API

    list():用于獲得當前上下文的綁定列表
    lookup():用于解析上下文中名字綁定,該操作將返回綁定到給定名字的對象。
    rename():重新命名
    createSubContext():從當前上下文創(chuàng)建子上下文。
    destroySubContext():從當前上下文銷毀子上下文。
    bind()。從當前上下文中創(chuàng)建名字到對象的綁定。
    rebind():再次綁定,如果已經(jīng)存在同名綁定則覆蓋之。

    posted on 2008-03-20 12:55 和風(fēng)細雨 閱讀(674) 評論(0)  編輯  收藏 所屬分類: J2EE


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 中文字幕亚洲码在线| caoporm超免费公开视频| 国产hs免费高清在线观看| 大片免费观看92在线视频线视频| 亚洲色成人WWW永久网站| 嘿嘿嘿视频免费网站在线观看| 亚洲国产精品无码久久| 亚洲自偷自偷图片| 丁香花免费完整高清观看| 午夜免费国产体验区免费的| 亚洲自偷自偷精品| 日韩中文无码有码免费视频| 免费在线观影网站| 亚洲色偷偷综合亚洲av78| 国产亚洲精AA在线观看SEE| 亚洲色精品88色婷婷七月丁香| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 国产hs免费高清在线观看| 香蕉成人免费看片视频app下载| 亚洲人成网站看在线播放| 亚洲午夜久久久久久噜噜噜| 四虎免费影院ww4164h| 久久高潮一级毛片免费| 久久亚洲最大成人网4438| 亚洲精品成人无限看| 日本高清免费不卡在线| 99视频在线免费| 色爽黄1000部免费软件下载| 亚洲小说图片视频| 国产亚洲一区二区手机在线观看| 精品国产麻豆免费网站| 99re热精品视频国产免费| 国产va免费精品| 亚洲gay片在线gv网站| 亚洲白色白色在线播放| 亚洲午夜久久久久久噜噜噜| 无码不卡亚洲成?人片| 成人毛片免费视频| 亚洲国产精品免费在线观看| 91免费福利视频| sss在线观看免费高清|