日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java技术回顾之JNDI--JNDI API

發布時間:2024/7/23 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java技术回顾之JNDI--JNDI API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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()); }

JNDI API包含以下5個package:
javax.naming
javax.naming.directory
javax.naming.event
javax.naming.ldap
javax.naming.spi
其中前面4個package定義了JNDI客戶端接口,面向使用命名和目錄服務的應用

最后的javax.naming.spi定義了JNDI服務提供者接口(SPI),面向不同的命名和目錄服務提供者。 ?

命名服務主要API javax.naming

1、Context接口和InitialContext類
Context是命名服務的核心接口,提供對象查找,綁定/解除綁定,重命名對象,創建和銷毀子上下文等操作。
InitialContext類實現了Context接口,是訪問命名服務的起始上下文,通過它可查找對象和子上下文。

Object lookup(Name name) Object lookup(String name) 根據名稱獲取對象 void bind(Name name, Object obj) void bind(String name, Object obj) 綁定名稱到對象 void unbind(Name name) void unbind(String name) 解除綁定,釋放對象 void rebind(Name name, Object obj) void rebind(String name, Object obj) 將對象和一個已經存在的名稱重新綁定 void rename(Name oldName, Name newName) void rename(String oldName, String newName) 修改對象名稱 NamingEnumeration<NameClassPair> list(Name name) NamingEnumeration<NameClassPair> list(String name) 列出上下文中的所有對象名稱信息。NameClassPair包含對象名稱和對象類名。 NamingEnumeration<Binding> listBindings(Name name) NamingEnumeration<Binding> listBindings(String name) 列出上下文中的所有綁定。 Context createSubcontext(Name name) Context createSubcontext(String name) 創建子上下文 void destroySubcontext(Name name) void destroySubcontext(String name) 銷毀子上下文
2、Name接口

對應于命名服務概念中的對象名稱。它的具體實現可能是一個簡單的字符串,也可能是一個復雜對象。CompoundName類和CompositeName類均實現了Name接口,分別代表復合名稱和混合名稱。

3、Binding類
對應于命名服務概念中的綁定。一個Binding包含對象名稱,對象的類名稱,對象本身。

String getName() void setName(String name) 獲取/設置對象名稱 String getClassName() setClassName(String name) 獲取/設置對象類名 Object getObject() void setObject(Object obj) 獲取/設置對象

4、Referenceable接口和Reference類
命名服務中對象的存儲方式各不相同。有的將對象直接序列化,這時實現標準的Serializable接口接口。有的要將對象存儲在命名系統外部,這就要用到Referenceable接口和Reference類了。Reference類包含了怎樣構造出一個實際對象的信息,實際對象則需要實現Referenceable接口。
Referenceable主要方法:
Reference getReference() 返回對象的引用。
當將一個實現了Referenceable接口的對象綁定到Context時,實際上通過getReference()得到它的Reference進行綁定。而如何從Reference中創建出Referenceable實例,則由具體的SPI實現,JNDI客戶不用關心。 ?



目錄服務主要API javax.naming.directory

1、DirContext接口和InitialDirContext類
DirContext是目錄服務的核心接口,它擴展了Context接口,除了提供了命名服務的各種操作外,還提供了訪問和更新目錄對象屬性的操作,以及Search操作。
InitialDirContext類擴展InitialContext類并實現了DirContext接口,是訪問目錄服務的起始點。
DirContext主要方法:
binding/rebing/unbinding等方法與Context類似,區別是各個方法中均添加了Attributes參數,表示綁定的是一個目錄對象,其中有對象本身,還有對象的屬性集合。這里不再列舉。

Attributes getAttributes(Name name) 獲取對象的屬性集合 void modifyAttributes(Name name, int mod_op, Attributes attrs) 修改對象的屬性集合 NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) 搜索包含匹配的屬性的對象。 NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) 通過查詢過濾條件進行搜索,同時指定了搜索控制。

2、Attribute接口和Attributes接口
Attribute接口對應于目錄服務概念中的屬性。Attributes表示屬性的集合。

3、SearchResult類和SearchControls類
SearchResult類繼承自Binding類,表示DirContext的search操作的結果。SearchControls類用于對搜索操作進行更精細的控制,如指定搜索范圍(Scope),時間限制(TimeLimit)和結果數量限制(CountLimit)。

命名和目錄服務事件API javax.naming.event

1、EventContext接口和EventDirContext接口
分別表示支持事件通知的上下文,提供了添加和刪除事件監聽器的操作。

2、NamingEvent類
命名和目錄服務產生的事件。包含一個type表示不同的事件類型。

3、NamingListener/NamespaceChangeListener/ObjectChangeListener
NamingListener是處理NamingEvent事件監聽器的接口,NamespaceChangeListener和ObjectChangeListener是它的兩個子接口,分別定義了各自感興趣的NamingEvent事件類型的處理方法。





總結

以上是生活随笔為你收集整理的Java技术回顾之JNDI--JNDI API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。