JNDI

JNDI全稱 Java Naming and Directory Interface 
JNDI是Java平臺的一個標準擴展,提供了一組接口、類和關於命名空間的概念。如同其它很多Java技術一樣,
JDNI是provider-based的技術,暴露了一個API和一個服務供應接口(SPI)。
這意味着任何基於名字的技術都能通過JNDI而提供服務,只要JNDI支持這項技術。
JNDI目前所支持的技術包括LDAP、CORBA Common Object Service(COS)名字服務、RMI、NDS、DNS、Windows註冊表等等。
很多J2EE技術,包括EJB都依靠JNDI來組織和定位實體。 
 JDNI通過綁定的概念將對象和名稱聯繫起來。在一個文件系統中,文件名被綁定給文件。
  在DNS中,一個IP地址綁定一個URL。在目錄服務中,一個對象名被綁定給一個對象實體。 
 JNDI中的一組綁定作爲上下文來引用。每個上下文暴露的一組操作是一致的。
         例如,每個上下文提供了一個查找操作,返回指定名字的相應對象。
       每個上下文都提供了綁定和撤除綁定名字到某個對象的操作。
     JNDI使用通用的方式來暴露命名空間,即使用分層上下文以及使用相同命名語法的子上下文。 
  jndi的用途: 
 1。你可以用jndi來得到object類的屬性 
如:Attribute attr =directory.getAttributes(personName).get("email"); 
  String email = (String)attr.get(); 
 2。你可以用jndi來搜索對象 
如:foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls); 
查找誰的名字叫Fox在wiz部門的員工? 
 3。你可以用jndi通過naming/directory服務查詢像printers和databases的對象 
如:查詢  Printer 
Printer printer = (Printer)namespace.lookup(printerName); 
printer.print(document); 
 4。你可以用jndi列表出命名空間的特殊級別的內容 
如: 
  NamingEnumeration list = namespace.list("o=Widget, c=US"); 
while (list.hasMore()) { 
  NameClassPair entry = (NameClassPair)list.next(); 
  display(entry.getName(), entry.getClassName()); 
} 
發佈了23 篇原創文章 · 獲贊 0 · 訪問量 94萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章