在路上。。。

一路前行,无论好坏,看遍世间的风景

数据源的配置

             一、JNDI ---数据源

1、Weblogic:  定义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> 
    </property> 
</bean> 

实例: 

数据源的配置: 

(1)配置可以访问到同一应用服务器的jndi数据源 
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName"> 
        <value>jdbc/cqccms</value> 
    </property> 
</bean> 

(2)配置能访问远程jndi数据源 
方法1:直接通过JndiObjectFactoryBean的jndiEnvironment属性定义远程JNDI参数 
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
  <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> 
</bean> 

方法2:先定义jndiTemplate,由jndiTemplate定义远程JNDI参数 

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> 
    <property name="environment"> 
        <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> 
</bean> 

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
  <property name="jndiName"> 
     <value>jdbc/cqccms</value> 
  </property> 
  <property name="jndiTemplate" ref="jndiTemplate" /> 
</bean> 

2、Tomcat:

JNDI配置文件:context.xml(/WebRoot/META-INF目录下)

<Context>
 <Resource name="jdbc/EmployeeDB"
auth="Container"
type="javax.sql.DataSource"

username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/day16"
maxActive="8"
maxIdle="4"/>
</Context>



JNDI代码:

import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;


public class BaseDao {
public void add(){
try{
Context initCtx = new InitialContext();  //初始化jndi
Context envCtx = (Context) initCtx.lookup("java:comp/env");  //得到jndi容器
DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB");  //从容器中检索链接池

Connection conn = ds.getConnection();
System.out.println(conn);


}catch (Exception e) {
e.printStackTrace();
}
}

}



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Rogger_chen/article/details/46819719
个人分类: 数据源的配置
上一篇Solving “Dynamic Web Module 3.0 requires Java 1.6 or newer” in Maven Projects
下一篇Tomcat Error deploying configuration descriptor...的错误处理
想对作者说点什么? 我来说一句

java常用数据源连接池配置

2010年08月13日 10KB 下载

Spring 配置各种数据源

2011年05月18日 8.99MB 下载

Tomcat jndi 配置数据源过程

2009年05月19日 13KB 下载

SSH配置多个数据源

2011年01月18日 22KB 下载

OC4J里配置数据源

2011年10月01日 30KB 下载

weblogic配置jdbc数据源

2018年05月23日 507KB 下载

Tomcat 数据源配置

2011年08月03日 623B 下载

没有更多推荐了,返回首页

关闭
关闭