乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      01

       yespon 2016-09-11

      在S2SH開(kāi)發(fā)中會(huì)使用的Spring來(lái)注入數(shù)據(jù)源,在本地開(kāi)發(fā)時(shí)我們使用<bean>注入數(shù)據(jù)源

      Xml代碼  收藏代碼
      1. <bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
      2.     <property name="driverClassName" value="${jdbc.driverClassName}" />  
      3.     <property name="url" value="${jdbc.url}" />  
      4.     <property name="username" value="${jdbc.username}" />  
      5.     <property name="password" value="${jdbc.password}" />  
      6.     <property name="maxActive" value="${jdbc.maxActive}" />  
      7. </bean>  

       

      上面的配置文件取自Spring中,有了dataSourceSpied就可以將這個(gè)數(shù)據(jù)源引入到hibernate的sessionFactory

      Xml代碼  收藏代碼
      1. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
      2.     <!-- 配置sessionFactory中要用的數(shù)據(jù)源 -->  
      3.     <property name="dataSource" ref="dataSourceSpied" />  
      4.     ...  
      5. </bean>  

       

      但是在生產(chǎn)上,或者測(cè)試環(huán)境數(shù)據(jù)庫(kù)的鏈接、用戶名、密碼都是很重要的信息,不能直接暴露在外面。所以在生成、測(cè)試環(huán)境我們會(huì)使用JNDI這種服務(wù)來(lái)得到數(shù)據(jù)庫(kù)鏈接

      Xml代碼  收藏代碼
      1. <jee:jndi-lookup id="dataSourceSpied" jndi-name="dataSourceDBaihis" />  

      然后再web服務(wù)器上創(chuàng)建數(shù)據(jù)源。我們使用weblogic11這種web服務(wù)器,在上面創(chuàng)建數(shù)據(jù)源,數(shù)據(jù)源的名字叫做“dataSourceDBaihis”這樣在Spring配置文件中使用:

      Xml代碼  收藏代碼
      1. <jee:jndi-lookup id="dataSourceSpied" jndi-name="dataSourceDBaihis" />  

      就能得到數(shù)據(jù)源。

      那么什么叫做JNDI呢?

      JNDI:Java Naming and Directory Interface,Java命名和目錄接口

      是一種命名服務(wù)的抽象機(jī)制,用通俗的話講就是:我知道在網(wǎng)絡(luò)上有一個(gè)對(duì)象,并且知道這個(gè)對(duì)象的名字和網(wǎng)絡(luò)地址,那么我可以通過(guò)JNDI來(lái)獲得這個(gè)網(wǎng)絡(luò)上的對(duì)象

      非通俗解釋:

      JNDI的目的是用來(lái)查找J2EE服務(wù)器的注冊(cè)資源。只要該對(duì)象在命名服務(wù)器上注冊(cè)過(guò),且你知道命名服務(wù)器的地址和該對(duì)象在命名服務(wù)器上注冊(cè)的JNDI名。這樣你就可以在無(wú)需知道對(duì)象位置的情況下獲取和使用對(duì)象。

      拿上面介紹的數(shù)據(jù)源來(lái)說(shuō)明:

      項(xiàng)目中沒(méi)有正在實(shí)例化數(shù)據(jù)源,只是通過(guò)jndi-lookup呼叫了一個(gè)數(shù)據(jù)。我知道數(shù)據(jù)源的名字,因?yàn)轫?xiàng)目部署在weblogic上,所以項(xiàng)目自然知道這個(gè)數(shù)據(jù)源的地址。所以項(xiàng)目知道了數(shù)據(jù)源對(duì)象的地址和數(shù)據(jù)源的名稱,這樣就可以通過(guò)JNDI獲得這個(gè)數(shù)據(jù),并注入到hibernate中。

       

      Java對(duì)JNDI只提供接口,使用JNDI只需要用到JNDI接口而不必關(guān)心具體實(shí)現(xiàn)。這就類似與Java的JDBC,Java也只是提供了JDBC的接口,各個(gè)數(shù)據(jù)庫(kù)廠家提供接口的實(shí)現(xiàn)。開(kāi)發(fā)過(guò)程中程序員不用關(guān)心廠家是如何實(shí)現(xiàn)的,只需要面向接口編程即可。

      以上完全是停留在概念上理解什么是JNDI,下節(jié)將要介紹兩個(gè)簡(jiǎn)單的例子,這樣我們可以更加清晰的認(rèn)識(shí)到JNDI是如何獲得遠(yuǎn)程對(duì)象的。先在這里做個(gè)小鋪墊,因?yàn)镴ava只提供了JNDI的接口,所以在寫(xiě)demo過(guò)程中要用到廠家提供的實(shí)現(xiàn)。我在這里列舉了各個(gè)廠家提供的鏈接和工廠類:

      Java代碼  收藏代碼
      1. //jboss:  
      2. Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"  
      3. Context.URL_PKG_PREFIXES, "org.jboss.naming"  
      4. Context.PROVIDER_URL, "localhost:1099"  
      5.   
      6. //weblogic:  
      7. Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"  
      8. Context.PROVIDER_URL, "t3://localhost:7001"  
      9.   
      10. //apusic(金蝶):  
      11. Context.INITIAL_CONTEXT_FACTORY, "com.apusic.jndi.InitialContextFactory"  
      12. Context.PROVIDER_URL, "rmi://localhost:6888"  
      13.   
      14. //WebSphere:  
      15. Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"  
      16. Context.PROVIDER_URL, "iiop://localhost:900"  
      17.   
      18.   
      19. //J2EE  SDK(J2EE  RI):  
      20. Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.cosnaming.CNCtxFactory"  
      21. Context.PROVIDER_URL, "iiop://127.0.0.1:1050"  
      22.   
      23. //SilverStream:  
      24. Context.INITIAL_CONTEXT_FACTORY, "com.sssw.rt.jndi.AgInitCtxFactory"  
      25. Context.PROVIDER_URL, "sssw://localhost:80"  
      26.   
      27. //OC4J:  
      28. Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory"  
      29. Context.PROVIDER_URL, "ormi://127.0.0.1/"  
      30.   
      31. //WAS5:  
      32. Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"  
      33. Context.PROVIDER_URL, "iiop://localhost:2809"  

       解釋一下上述代碼:

      Context.INITIAL_CONTEXT_FACTORY:指定到目錄服務(wù)的連接工廠
      Context.PROVIDER_URL:目錄服務(wù)提供者URL

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多