JNDI(JavaNaming Directory Interface)--java命名和目錄接口,是1組在Java利用中訪問命名和目錄服務的API。為開發人員提供了查找和訪問各種命名和目錄服務的通用、統1的接口,類似JDBC,都是構建在抽象層上。是J2EE的標準之1,所有的J2EE容器都必須提供1個JNDI的服務。
JNDI的命稱可能會讓人產生混淆,1開始接觸到這1規范覺得這是1個用來操作目錄的,事實上,可以把這個目錄理解成為JNDI寄存對象時使用的格式,也就是說,JNDI以目錄的方式存儲對象的屬性。
命名或目錄服務使用戶可以集中存儲共有信息,這使得這樣的利用更調和、更容易管理。例如,可以將打印機設置存儲在目錄服務中,以便被與打印機有關的利用使用。
我們大家每天都不知不覺地使用了命名服務。命名系統中的對象可以是DNS記錄中的名稱、利用服務器中的EJB組件(Enterprise JavaBeans Component)、LDAP(LightweightDirectory Access Protocol)中的用戶Profile。
目錄服務是命名服務的自然擴大。二者之間的關鍵差別是目錄服務中對象可以有屬性(例如,用戶有email地址),而命名服務中對象沒有屬性。因此,在目錄服務中,你可以根據屬性搜索對象。
1、綁定與釋放
1)void bind(String sName,Object object) 綁定:把名稱同對象關聯的進程
2)void rebind(String sName,Object object) 重新綁定:用來把對象同1個已存在的名稱重新綁定。1般使用rebind()而不使用bind(),由于當有重名的時候rebind()不會出現異常,而bind()會報異常。
3)voidunbind(String sName) 釋放:用來把對象從目錄中釋放出來。
利用代碼以下:
2、查找對象
Void lookup(string sName,Object object) 查找:返回目錄總的1個對象
3、重命名對象
void rename(String sOldName,StringsNewName) 重命名:用來修改對象名稱綁定的名稱。
4、獲得清單
NamingEnumerationlistBindings(StringsName) 清單:返回綁定在特定上下文中指定屬性名對象的清單列表,它返回名字、類和對象本身,它用于那些需要對對象進行實際操作的利用。
JNDI的思想是提供1個通用的接口。底層的名字服務時限可以是各種類型,JNDI通過SPI時限代碼屏蔽了各種名字和目錄服務實現的區分。
JNDI可以解決數據同享,散布式利用,緊耦合的問題,所以可以利用在1些比較大的軟件開發中,散布式系統中或是比較重視后期保護和升級的項目中。
上一篇 數據結構 - 二叉樹的存儲結構
下一篇 sed基本用法