bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

使用JNDI的優點有哪些-創新互聯

使用JNDI的優點有哪些?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

目前成都創新互聯已為1000+的企業提供了網站建設、域名、網絡空間、成都網站托管、企業網站設計、濟源網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。

一、JNDI是什么?

JNDI--Java 命名和目錄接口(Java Naming and Directory Interface),是一組在Java應用中訪問命名和目錄服務的API。
二、JNDI好處

解耦:通過注冊、查找JNDI服務,可以直接使用服務,而無需關心服務提供者,這樣程序不至于與訪問的資源耦合!

JNDI優點 

包含了大量的命名和目錄服務,使用通用接口來訪問不同種類的服務;   

可以同時連接到多個命名或目錄服務上;   

建立起邏輯關聯,允許把名稱同Java對象或資源關聯起來,而不必知道對象或資源的物理ID。   

JNDI程序包:   
javax.naming:命名操作;   
javax.naming.directory:目錄操作;   
javax.naming.event:在命名目錄服務器中請求事件通知;   
javax.naming.ldap:提供LDAP支持;   
javax.naming.spi:允許動態插入不同實現。   

利用JNDI的命名與服務功能來滿足企業級APIs對命名與服務的訪問,諸如EJBs、JMS、JDBC 2.0以及IIOP上的RMI通過JNDI來使用CORBA的命名服務。

三、JNDI架構與原理

相比較架構與原理,更關注與使用,故略!

四、JNDI使用
在J2EE容器(如weblogic、websphere、jboss等)中使用:

在weblogic環境下查找tuxedo 連接     

//在weblogic環境查找tuxedo連接 
Context ctx = new InitialContext(); 
TuxedoConnectionFactory tuxedoFactory = (TuxedoConnectionFactory) ctx.lookup("tuxedo.services.TuxedoConnection");

在web容器查找數據源

Context ctx=new InitialContext(); 
DataSource ds=(Datasource)ctx.lookup("java:comp/env/jdbc/mydatasource");

重點關注Context ctx = new InitialContext(),上面的代碼在容器下能夠很好的工作,尤其是查找數據源的代碼,無論是在tomcat,還是在weblogic、jboss,但如果脫離了容器,我們將得到異常“NoInitialContextException”,這是為什么呢?

原因很簡單,就是不存在相關的context,其本質是JNDI的服務提供者環境,即誰將提供此環境!

為了能夠使上面的代碼工作,我們需要使用帶參的構造子InitialContext(Hashtable),指定JNDI服務提供者環境信息,以weblogic環境為例:

Hashtable env = new Hashtable(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
env.put(Context.PROVIDER_URL,"t3://localhost:7001"); 
InitialContext ctx = new InitialContext(env);

但上面的代碼不適合WebSphere、jboss等環境,原因在于所需環境信息不同,那么,Context ctx = new InitialContext()是如何做到在各個j2ee容器下有效地呢?原因在于這個默認的構造子是從System.properties讀取相關的環境信息的,由此不難猜出在各種J2EE容器下,如weblogic、jboss,它們都自己為自己設置了相應的信息!下面是一個關于System.properties設置JNDI服務環境的例子:

System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
System.setProperty(Context.PROVIDER_URL, "t3://localhost:7001"); 
InitialContext ctx = new InitialContext();

五、借助Spring完成JNDI查找

對于手頭的weblogic,給出常用的兩個查找例子,做個備忘吧!

查找tuxedo connnection:

<bean id="tuxedoConnFactory" class="org.springframework.jndi.JndiObjectFactoryBean">   
   <property name="jndiName">  
      <value>tuxedo/services/TuxedoConnection</value> 
   </property>  
   <property name="resourceRef">  
     <value>false</value> 
   </property>  
   <property name="jndiEnvironment">  
    <props>  
      <!-- The value of ContextPROVIDER_URL -->  
      <prop key="java.naming.provider.url">t3://localhost:7001</prop>  
      <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>  
    </props>  
   </property>  
</bean>

查找DataSource:

<bean id="tuxedoConnFactory" class="org.springframework.jndi.JndiObjectFactoryBean">   
   <property name="jndiName">  
      <value>java:comp/env/jdbc/myDatasource</value> 
   </property>  
</bean>

看完上述內容,你們掌握使用JNDI的優點有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!

當前題目:使用JNDI的優點有哪些-創新互聯
文章轉載:http://vcdvsql.cn/article36/cssspg.html

成都網站建設公司_創新互聯,為您提供品牌網站制作面包屑導航網站收錄品牌網站建設微信公眾號網站導航

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站