多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 【J2EE淺析】――JNDI

【J2EE淺析】――JNDI

來源:程序員人生   發布時間:2015-05-25 08:43:22 閱讀次數:3197次

    1、JNDI概述

    JNDI(JavaNaming Directory Interface)--java命名和目錄接口,是1組在Java利用中訪問命名和目錄服務的API。為開發人員提供了查找和訪問各種命名和目錄服務的通用、統1的接口,類似JDBC,都是構建在抽象層上。是J2EE的標準之1,所有的J2EE容器都必須提供1個JNDI的服務。


   JNDI的命稱可能會讓人產生混淆,1開始接觸到這1規范覺得這是1個用來操作目錄的,事實上,可以把這個目錄理解成為JNDI寄存對象時使用的格式,也就是說,JNDI以目錄的方式存儲對象的屬性。


  2、命名服務和目錄服務

  命名或目錄服務使用戶可以集中存儲共有信息,這使得這樣的利用更調和、更容易管理。例如,可以將打印機設置存儲在目錄服務中,以便被與打印機有關的利用使用。


  我們大家每天都不知不覺地使用了命名服務。命名系統中的對象可以是DNS記錄中的名稱、利用服務器中的EJB組件(Enterprise JavaBeans Component)LDAP(LightweightDirectory Access Protocol)中的用戶Profile


  目錄服務是命名服務的自然擴大。二者之間的關鍵差別是目錄服務中對象可以有屬性(例如,用戶有email地址),而命名服務中對象沒有屬性。因此,在目錄服務中,你可以根據屬性搜索對象。


  3、經常使用基本操作

  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) 釋放:用來把對象從目錄中釋放出來。

  利用代碼以下:

public staticContext getInitialContext() throws NamingException{ Environment env = new Environment(); env.setProviderUrl("xxx"); env.setSecurityPrincipa("system"); env.setSecurityCredendtials("weblogic"); Contextcontext = env.getInitialContext(); returncontext; } //取得intial context Context ctx =getInitialContext(); //創建名為Band的對象 Bank myBank = newBank(); //對象綁定 ctx.bind("theBank",myBank); //把對象重新綁定到JNDI樹 ctx.rebind("theBank",myBank); //消除綁定 ctx.unbind("theBank"); ctx.close();


  2、查找對象

   Void lookup(string sName,Object object) 查找:返回目錄總的1個對象

importjavax.naming.*; try{ Context ic = new Context(); Objectobj; obj= ic.lookup("javax.transaction.UserTransaction"); UserTransactionut = (UserTransaction)obj; ut.begin(); ic.close(); }catch(NamingExceptione) {}

  3、重命名對象

   void rename(String sOldName,StringsNewName) 重命名:用來修改對象名稱綁定的名稱。

ctx.rename("report.txt", "old_report.txt");

  4、獲得清單

   NamingEnumerationlistBindings(StringsName) 清單:返回綁定在特定上下文中指定屬性名對象的清單列表,它返回名字、類和對象本身,它用于那些需要對對象進行實際操作的利用。

 

//得到初始目錄環境的1個援用 Context cntxt = new InitialContext(); //返回綁定在特定上下文中指定屬性名對象的清單列表 NamingEnumeration namEnumList = ctxt.listBinding("cntxtName"); //循環列出所著名字、類和對象 while ( namEnumList.hasMore() ) { Binding bnd = (Binding) namEnumList.next(); String sObjName = bnd.getName(); String sClassName = bnd.getClassName(); //得到對象 SomeObject objLocal = (SomeObject) bnd.getObject(); }

  4、總結

    JNDI的思想是提供1個通用的接口。底層的名字服務時限可以是各種類型,JNDI通過SPI時限代碼屏蔽了各種名字和目錄服務實現的區分。


   JNDI可以解決數據同享,散布式利用,緊耦合的問題,所以可以利用在1些比較大的軟件開發中,散布式系統中或是比較重視后期保護和升級的項目中。





生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 性―交―乱―色―情 | 欧美人与禽xoxo牲伦交 | 欧美日韩国产不卡在线观看 | 亚洲色图网站 | 亚洲欧美成人中文在线网站 | 日韩一区二区不卡中文字幕 | 亚洲精品中文字幕乱码影院 | 日本精品中文字幕在线播放 | 国产精品一区欧美激情 | 男女免费在线视频 | 男人午夜视频在线观看 | 国产精品永久免费视频 | 午夜在线网站 | 亚洲国产成人资源在线软件 | 天天拍夜夜添久久精品中文 | 91麻豆精品国产综合久久久 | 国产真实女人一级毛片 | 羞羞动漫在线观看 | 最近中文字幕视频完整 | 国产精品久久久久久免费 | 日本黄色大片视频 | 日本高清www视频在线观看 | 国产亚洲精品热视频在线观看 | 精品国产96亚洲一区二区三区 | 欧美最猛黑人xxxx黑人猛交69 | 尤物精品在线观看 | 操片| 亚洲视频免费播放 | 欧美videos极品 | 日本免费在线一区 | 日本精品中文字幕 | 免费一级毛片免费播放 | 国产91一区二区在线播放不卡 | 亚洲人成网站在线播放观看 | 伊人官网| 肉视频在线观看 | 欧美非洲黑人性xxxx | 欧美一区中文字幕 | 日韩大片免费观看 | 日本一区二区三区不卡在线视频 | 麻豆精品不卡国产免费看 |