-
1.jndi是個什麼東西?
JNDI全稱(java naming ang drectory interface ,java 命名與目錄服務接口),在這個世界,一切都是對象,如何管理這些對象至關重要,jndi便是名字,對象映射管理的一套标準。 -
2.命名服務
(1)常見的命名服務系統
DNS域名系統,負責ip與域名的映射;
作業系統中的檔案系統,各個檔案對象與檔案名的映射;
戶籍管理系統,每個公民與身份證的映射;
(2)上下文
一個命名服務系統要存放一堆的映射關系需要一個對象進行管理,context便是這個對象。
(3)命名系統提供了那些服務
注冊(綁定),查找,登出(解綁)。
3.目錄服務
當需要管理的對象多而複雜時,根據不同對象的特征将對象進行分類,于是便有了目錄服務。其相對于命名服務多了對象的屬性,友善管理。4.JNDI程式設計基礎
(1).使用方式
通過上面,我們知道命名目錄服務系統一般搭建在遠端伺服器上,不同服務提供商所提供的内容不一樣,但是為了友善用戶端對服務内容的通路,這時就需要建立一個标準,提供統一的服務建立與通路的接口,讓命名目錄服務的建立與通路統一化
(2)程式設計架構
1.java jndi api :定義了jndi的接口和常見實作類。
2.service provider interface(spi):定義了服務提供者接口以及驅動類。服務通路者: javax.naming 提供命名服務的簡單通路 javax.naming.drectory 通路目錄服務的接口和類 javax.naming.event 處理通路命名服務和目錄服務的異常資訊類 javax.naming.ldap 通路ldap目錄服務的接口和類 javax.naming.spi 提供ldap協定目錄服務的驅動的實作
服務提供者: 實作jndi服務的驅動,提供命名與目錄服務
(3)命名服務的連接配接
1.本地連接配接
context:提供命名服務上下文的接口
initialcontext:命名服務的實作
連接配接模闆:
try
{
Context ctx=new InitialContext();
ctx.close();
}
catch(NamingException e)
{
}
ps:關閉連接配接對象并不會關閉命名服務本身。
2.遠端連接配接
遠端連接配接需要提供以下參數:命名服務工廠類,位址,賬号,密碼。
weblogic伺服器連接配接模闆:
try{
Properties properties =new Properties();
//設定命名服務工廠類
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
//賬号
properties.put(Context.SECURITY_PRINCIPAL, "admin");
//密碼
properties.put(Context.SECURITY_CREDENTIALS, "123456");
//命名服務協定,位址,端口
properties.put(Context.PROVIDER_URL, "t3://192.168.70.11:1199");
Context ctx=new InitialContext(properties);
//業務處理
ctx.close();
}catch(NamingException e)
{
//namingexceptionjkl/處理
}