日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

【J2EE淺析】――JNDI

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

    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些比較大的軟件開發中,散布式系統中或是比較重視后期保護和升級的項目中。





生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91精品一区二区三区久久久久 | 免费av一区二区三区 | 精品久久久久一区 | 国产一级毛片视频 | 九九综合 | av三级在线观看 | 蜜桃永久免费 | 国产福利片在线 | 一级片久久 | 97av精品| 成人毛片在线精品国产 | 欧美天堂在线观看 | 国产精品久久久久久久久久 | 爱久久视频| 黄色短视频在线播放 | 亚洲一区二区三区在线免费观看 | 中文精品视频 | 日韩在线欧美 | av在线色 | 玖玖在线资源 | 中文字幕一区二区三区免费视频 | 精品久久久久久久久久久久久久久久久 | 在线免费观看视频一区二区三区 | 精品久久久国产 | 韩国三级视频 | 成人毛片网站 | 日韩福利一区二区 | 夜夜精品视频一区二区 | 色网站免费 | 不卡精品视频 | 国产精品久久免费视频 | 久久久久97| 国产三级一区二区 | 国产福利在线播放 | 99精品免费视频 | 日本一区二区三区四区视频 | 欧美日韩精品一二三区 | 久久久久99 | 日韩欧美在 | 精品免费视频一区二区 | 国产一区二区免费网站 |