最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JNDI簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

 更新時(shí)間:2017年08月04日 10:18:00   作者:redsnow  
這篇文章主要介紹了JNDI簡(jiǎn)介,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

一、JNDI是什么?

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

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

JNDI優(yōu)點(diǎn) 

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

可以同時(shí)連接到多個(gè)命名或目錄服務(wù)上;   

建立起邏輯關(guān)聯(lián),允許把名稱同Java對(duì)象或資源關(guān)聯(lián)起來,而不必知道對(duì)象或資源的物理ID。   

JNDI程序包:   
javax.naming:命名操作;   
javax.naming.directory:目錄操作;   
javax.naming.event:在命名目錄服務(wù)器中請(qǐng)求事件通知;   
javax.naming.ldap:提供LDAP支持;   
javax.naming.spi:允許動(dòng)態(tài)插入不同實(shí)現(xiàn)。   

利用JNDI的命名與服務(wù)功能來滿足企業(yè)級(jí)APIs對(duì)命名與服務(wù)的訪問,諸如EJBs、JMS、JDBC 2.0以及IIOP上的RMI通過JNDI來使用CORBA的命名服務(wù)。

三、JNDI架構(gòu)與原理

相比較架構(gòu)與原理,更關(guān)注與使用,故略!

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

在weblogic環(huán)境下查找tuxedo 連接     

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

在web容器查找數(shù)據(jù)源

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

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

原因很簡(jiǎn)單,就是不存在相關(guān)的context,其本質(zhì)是JNDI的服務(wù)提供者環(huán)境,即誰(shuí)將提供此環(huán)境!

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

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等環(huán)境,原因在于所需環(huán)境信息不同,那么,Context ctx = new InitialContext()是如何做到在各個(gè)j2ee容器下有效地呢?原因在于這個(gè)默認(rèn)的構(gòu)造子是從System.properties讀取相關(guān)的環(huán)境信息的,由此不難猜出在各種J2EE容器下,如weblogic、jboss,它們都自己為自己設(shè)置了相應(yīng)的信息!下面是一個(gè)關(guān)于System.properties設(shè)置JNDI服務(wù)環(huán)境的例子:

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

五、借助Spring完成JNDI查找

對(duì)于手頭的weblogic,給出常用的兩個(gè)查找例子,做個(gè)備忘吧!

查找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> 

相關(guān)文章

  • Springboot集成activity過程圖解

    Springboot集成activity過程圖解

    這篇文章主要介紹了Springboot集成activity過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • springboot使用GuavaCache做簡(jiǎn)單緩存處理的方法

    springboot使用GuavaCache做簡(jiǎn)單緩存處理的方法

    這篇文章主要介紹了springboot使用GuavaCache做簡(jiǎn)單緩存處理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 移除元素Java實(shí)現(xiàn)方式

    移除元素Java實(shí)現(xiàn)方式

    這篇文章主要介紹了移除元素Java實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java銀行取錢線程安全問題實(shí)例分析

    Java銀行取錢線程安全問題實(shí)例分析

    這篇文章主要介紹了Java銀行取錢線程安全問題,結(jié)合具體實(shí)例形式分析了java使用線程操作模擬銀行取錢的相關(guān)安全問題,需要的朋友可以參考下
    2019-09-09
  • Springboot中的三個(gè)基本架構(gòu)

    Springboot中的三個(gè)基本架構(gòu)

    這篇文章主要介紹了Springboot中的三個(gè)基本架構(gòu),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 單例模式的反射漏洞和反序列化漏洞代碼實(shí)例

    單例模式的反射漏洞和反序列化漏洞代碼實(shí)例

    這篇文章主要介紹了單例模式的反射漏洞和反序列化漏洞,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java實(shí)現(xiàn)向Word文檔添加文檔屬性

    Java實(shí)現(xiàn)向Word文檔添加文檔屬性

    這篇文章主要介紹了Java實(shí)現(xiàn)向Word文檔添加文檔屬性的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 基于java構(gòu)造方法Vector查找元素源碼分析

    基于java構(gòu)造方法Vector查找元素源碼分析

    本篇文章是關(guān)于ava構(gòu)造方法Vector源碼分析系列文章,本文主要介紹了Vector查找元素的源碼分析,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • java 單例模式容易忽略的細(xì)節(jié)

    java 單例模式容易忽略的細(xì)節(jié)

    這篇文章主要介紹了java 單例模式容易忽略的細(xì)節(jié),幫助大家更好的理解和使用java 單例模式,感興趣的朋友可以了解下
    2020-12-12
  • Java HttpClient技術(shù)詳解

    Java HttpClient技術(shù)詳解

    Http協(xié)議的重要性相信不用我多說了,HttpClient相比傳統(tǒng)JDK自帶的URLConnection,增加了易用和靈活性(具體區(qū)別,日后我們?cè)儆懻摚?,它不僅是客戶端發(fā)送Http請(qǐng)求變得容易,而且也方便了開發(fā)人員測(cè)試接口(基于Http協(xié)議的),即提高了開發(fā)的效率,也方便提高代碼的健壯性
    2021-10-10

最新評(píng)論

吉木萨尔县| 大理市| 岢岚县| 阿巴嘎旗| 苍山县| 虹口区| 嘉峪关市| 齐河县| 彭水| 郯城县| 麻栗坡县| 顺平县| 大宁县| 湖口县| 怀化市| 贵定县| 洛隆县| 阳高县| 涿鹿县| 河津市| 宣恩县| 淳化县| 平遥县| 临潭县| 寿阳县| 博客| 蒙自县| 临沧市| 崇州市| 延津县| 宝山区| 广平县| 桂平市| 杭锦后旗| 新乡市| 河北省| 西宁市| 呼玛县| 凤庆县| 中阳县| 台前县|