天天看點

Spring對JNDI的支援方法

spring中對于jndi的通路,提供了便捷的方法,在spring的org.springframework.jndi包中包含了所有的類。其中提供了一下核心類: 

1)jnditemplate:它是這個包的核心類,用來簡化對jndi的操作。它提供了對于lookup、bind方法。 

<bean id="jnditemplate" class="org.springframework.jndi.jnditemplate"> 

    <property name="environment"> 

        <props> 

      <prop key="java.naming.factory.initial">org.jnp.interfaces.namingcontextfactory</prop> 

            <prop key="java.naming.provider.url">jnp://localhost:1099</prop> 

            <prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop> 

        </props> 

    </property> 

</bean> 

2)jndiobjectfactorybean:looks up 一個jndi對象,暴露在jndi中找到的對象給其他bean引用,例如在資料源情況下作為資料通路對象的 "datasource" property 

使用jndiobjectfactorybean,例如 

<bean id="datasource" class="org.springframework.jndi.jndiobjectfactorybean"> 

    <property name="jndiname"> 

        <value>java:/mysqlds</value> 

執行個體: 

資料源的配置: 

(1)配置可以通路到同一應用伺服器的jndi資料源 

        <value>jdbc/cqccms</value> 

(2)配置能通路遠端jndi資料源 

方法1:直接通過jndiobjectfactorybean的jndienvironment屬性定義遠端jndi參數 

  <property name="jndiname"> 

     <value>jdbc/cqccms</value> 

  </property> 

  <property name="jndienvironment"> 

     <props> 

        <prop key="java.naming.factory.initial"> 

          weblogic.jndi.wlinitialcontextfactory 

        </prop> 

        <prop key="java.naming.provider.url">t3://172.16.101.42:7001</prop> 

        <prop key="java.naming.security.principal">weblogic</prop> 

        <prop key="java.naming.security.credentials">weblogic</prop> 

     </props>    

   </property> 

方法2:先定義jnditemplate,由jnditemplate定義遠端jndi參數 

            <prop key="java.naming.factory.initial">weblogic.jndi.wlinitialcontextfactory</prop> 

            <prop key="java.naming.provider.url">t3://172.16.101.42:7001</prop> 

            <prop key="java.naming.security.principal">weblogic</prop> 

            <prop key="java.naming.security.credentials">weblogic</prop> 

  <property name="jnditemplate" ref="jnditemplate" />