1.本地配置
配置org.apache.commons.dbcp.BasicDataSource,如下配置即可:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxActive" value="20" />
<property name="maxIdle" value="10" />
<property name="minIdle" value="2" />
</bean>
2.weblogic配置数据源
将weblogic.jar包导入到项目中,不到包会报找不到weblogic.jndi.WLInitialContextFactory类的错误,进行如下配置:
<bean id="srmJndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">${java.naming.factory.initial}</prop>
<prop key="java.naming.provider.url">${java.naming.provider.url}</prop>
<prop key="java.naming.security.principal">${java.naming.security.principal}</prop>
<prop key="java.naming.security.credentials">${java.naming.security.credentials}</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${jdbc.jndiName}" />
<property name="jndiTemplate" ref="srmJndiTemplate" />
</bean>
具体的配置参数如下:
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://134.64.208.94:7563,134.64.208.96:7563//weblogic地址
java.naming.security.principal=weblogic//weblogic登录名称
java.naming.security.credentials=logicweb//weblogic登录密码
jdbc.jndiName=srmDataSource//jndiName名称
若为配置访问同一应用服务器的数据源可以进行如下配置:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/cqccms</value>
</property>
</bean>
3.tomcat配置数据源
1)单个应用独享数据源
在Tomcat的server.xml找到工程的Context节点,添加一个私有数据源,优点:简单,缺点,重用性查,配置如下:
<Context docBase="Web" path="/Web" reloadable="true" source="org.eclipse.jst.jee.server:WebApp">
<Resource name="jndi/testDB" //指定的jndi名称,会用于spring数据源bean的配置和
auth="Container"
type="javax.sql.DataSource" //数据源床型,使用标准的javax.sql.DataSource
driverClassName="com.mysql.jdbc.Driver" //JDBC驱动器
url="jdbc:mysql://localhost:3306/test" //数据库URL地址
username="root" //数据库用户名
password="root" //数据库密码
maxActive="20"
maxIdle="10" //最大的空闲连接数
maxWait="10000"//当池的数据库连接已经被占用的时候,最大等待时间
removeAbandoned="true"
removeAbandonedTimeout="180"
logAbandoned="true"//被丢弃的数据库连接是否做记录,以便跟踪
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
/>
</Context>
2)配置全局JNDI数据源,应用到单个应用
所有将数据库连接池commons-dbcp.jar所依赖的包导入到tomcat安装目录的lib目录下,不导入会报错。
配置全局JNDI数据源,应用到单个应用数据源:
<Resource name="jdbc/testDB" //指定的jndi名称,会用于spring数据源bean的配置和ResourceLink的配置
type="javax.sql.DataSource" //数据源床型,使用标准的javax.sql.DataSource
driverClassName="com.mysql.jdbc.Driver" //JDBC驱动器
url="jdbc:mysql://localhost:3306/test" //数据库URL地址
username="test" //数据库用户名
password="test" //数据库密码
maxIdle="40" //最大的空闲连接数
maxWait="4000" //当池的数据库连接已经被占用的时候,最大等待时间
maxActive="250" //连接池当中最大的数据库连接
removeAbandoned="true"
removeAbandonedTimeout="180"
logAbandoned="true" //被丢弃的数据库连接是否做记录,以便跟踪
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" />
配置 ResourceLink:
a)tomcat安装目录下的conf/context.xml,把全局的resource直接公开给该tomcat下的所有web工程,在Context节点中加入:
<ResourceLink global="jdbc/testDB" name="jdbc/testDB" type="javax.sql.DataSource"/>
注:此方法会将数据源公布于tomcat下所有应用。
b)tomcat安装目录下的conf/server.xml,该方法可以指定把哪些source绑定到哪个web工程下,但貌似tomcat6.0不支持,tomcat5.5倒可以
<context docBase="/web/webapps/phoenix" path="" reloadable="false">
<ResourceLink global="jdbc/testDB" name="jdbc/testDB" type="javax.sql.DataSource"/>
</context>
c)安装目录下的conf/localhost/下建立一个xml文件,文件名是.xml。比如工程名为test,则该xml名为test.xml
<?xml version="1.0" encoding="UTF-8"?>
<context>
<ResourceLink global="jdbc/testDB" name="jdbc/testDB" type="javax.sql.DataSource"/>
</context>
d)tomcat安装目录下的\webapps\test\META-INF\context.xml的Context节点中增加:
<ResourceLink global="jdbc/testDB" name="jdbc/testDB" type="javax.sql.DataSource"/>
3)引用数据源
a) 在web项目的web.xml中加入资源引用:(可省略)
<resource-ref>
<description>JNDI DataSource</description>
<res-ref-name>jndi/testDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
启动的时候加载tomcat 配置的JNDI 公开数据源,其中res-ref-name值要和server.xml 、context.xml的name值一致。
b) 在web项目中配置spring数据源bean信息
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jndi/testDB</value>
</property>
</bean>