<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java系列之JNDI ## 簡介 JNDI(Java Naming and Directory Interface,Java命名和目錄接口)是SUN公司提供的一種標準的Java命名系統接口,JNDI提供統一的客戶端API,通過不同的訪問提供者接口JNDI服務供應接口(SPI)的實現,由管理者將JNDI API映射為特定的命名服務和目錄系統,使得Java應用程序可以和這些命名服務和目錄服務之間進行交互。目錄服務是命名服務的一種自然擴展。兩者之間的關鍵差別是目錄服務中對象不但可以有名稱還可以有屬性(例如,用戶有email地址),而命名服務中對象沒有屬性。 ### 命名服務 命名服務是一種服務,它提供了為給定的數據集創建一個標準名字的能力。它允許把名稱同Java對象或資源關聯起來,而不必指出對象或資源的物理ID。這類似于字典結構(或者是Java的map結構),該結構中鍵映射到值。例如在Internet上的域名服務(domain naming service,DNS)就是提供將域名映射到IP地址的命名服務,在打開網站時一般都是在瀏覽器中輸入名字,通過DNS找到相應的IP地址,然后打開。 所有的因特網通信都使用TCP、UDP或IP協議。IP地址由4個字節32位二進制數字組成,數字和名字相比,對于人來說名字比數字要容易記憶,但對于計算機來講,它更善于處理數字。 其實所有的命名服務都提供DNS這種基本功能,即一個系統向命名服務注冊,命名服務提供一個值到另一個值的映射。然后,另外一個系統訪問命名服務就可以取得映射信息。這種交互關系對分布式企業級應用來講顯得非常重要,在Java中,基本的名字操作包含在Context接口中。 ### 目錄服務 目錄服務是一種特殊類型的數據庫,與SQL Server、Access、Oracle等關系數據庫管理系統相反,構造目錄服務的目的是為了處理基于行為的事務,并且使用一種關系信息模型。目錄服務將命名服務的概念進一步引申為提供具有層次結構的信息庫,這一信息庫除了包含一對一的關系外,還有信息的層次結構。對目錄服務而言,這種層次結構通常用于優化搜索操作,并且也可以按實際情況進行分布或者跨網絡復制。 一個目錄服務通常擁有一個名字服務(但是一個名字服務不必具有一個目錄服務)。如電話簿就是一個典型的目錄服務,一般先在電話簿里找到相關的人名,再找到這個人的電話號碼。 每一種目錄服務都可以存儲有關用戶名、用戶密碼、用戶組(如有關訪問控制的 ? ?信息)、以太網地址、IP地址等信息。它所支持的信息和操作會因為所使用的目錄服務的不同而不同。遺憾的是,訪問不同目錄服務的協議也會不同,所以讀者需要了解多種API。 這就是JNDI的起源,就像JDBC一樣,JNDI充當不同名稱和目錄服務的通用API或者說是前端,然后使用不同的后端適配器來連接實際服務。 JNDI是J2EE技術中的一個完整的組件。它支持通過一個單一的方法訪問不同的、新的和已經存在的服務的方法。這種支持允許任何服務提供商執行通過標準服務提供商接口(SPI)協定插入JNDI框架。 ## 作用 JNDI的功能簡單說就是可以簡單的方式去查找某種資源。? JNDI是一個應用程序設計的API,為開發人員提供了查找和訪問各種命名和目錄服務的通用、統一的接口,類似JDBC都是構建在抽象層。比如在Tomcat中配置了一個JNDI數據源,那么在程序中之需要用Java標準的API就可以查找到這個數據源,以后數據源配置發生變化了,等等,程序都不需要改動,之需要改改JNDI的配置就行。增加了程序的靈活性,也給系統解耦了。 ## 總結 J2EE 規范要求所有 J2EE 容器都要提供 JNDI 規范的實現。JNDI 在 J2EE 中的角色就是“交換機” —— J2EE 組件在運行時間接地查找其他組件、資源或服務的通用機制。在多數情況下,提供 JNDI 供應者的容器可以充當有限的數據存儲,這樣管理員就可以設置應用程序的執行屬性,并讓其他應用程序引用這些屬性(Java 管理擴展(Java Management Extensions,JMX)也可以用作這個目的)。JNDI 在 J2EE 應用程序中的主要角色就是提供間接層,這樣組件就可以發現所需要的資源,而不用了解這些間接性。 ? 在 J2EE 中,JNDI 是把 J2EE 應用程序合在一起的粘合劑,JNDI 提供的間接尋址允許跨企業交付可伸縮的、功能強大且很靈活的應用程序。這是 J2EE 的承諾,而且經過一些計劃和預先考慮,這個承諾是完全可以實現的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看