首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

JNDI (Java Naming and Directory Interface) 核心概念與應用實例

     編輯:J2EE

命名服務與目錄服務

  • 命名服務:名稱綁定物件,透過名稱查找(如檔案系統)
  • 目錄服務:延伸命名服務,額外儲存物件屬性,支援查詢/修改/增刪屬性

JNDI 架構

統一 API 存取各種命名/目錄服務 (LDAP, DNS, NIS 等)。兩組介面:

  • JNDI API:應用程式呼叫
  • JNDI SPI:服務提供者實作,透明加入架構

Context 核心操作

  • bind(name, obj):建立綁定
  • lookup(name):查找物件
  • rebind(name, obj):覆蓋綁定
  • unbind(name):移除綁定

Apusic JNDI 應用範例:查找 EJB Home

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.apusic.jndi.InitialContextFactory");
env.put(Context.PROVIDER_URL, "rmi://localhost:6888");
env.put(Context.SECURITY_PRINCIPAL, null);
env.put(Context.SECURITY_CREDENTIALS, null);
Context ctx = new InitialContext(env);
AccountHome home = (AccountHome) ctx.lookup("CMAccountHome");

參數說明:

  • INITIAL_CONTEXT_FACTORY:JNDI 實作廠商類別
  • PROVIDER_URL:命名服務提供者 URL
  • SECURITY_PRINCIPAL/CREDENTIALS:認證資訊

透過 JNDI 實現資源位置透明化,程式碼不依賴具體機器名稱/位置,部署調整只需更新目錄服務。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved