首先,
Data source
可以做为
Resource(JDNI
方式
)
可以在
$TOMCAT_HOME/conf/context.xml
或
server.xml
的
GlobalNamingResources
元素里配置成全局资源或
$project.war/META-INF/conext.xml
配置成应用级资源,然后在
web application context
配置该
JNDI,
如(假设
JNDI
名字为
/jdbc/my-ds
):
(context.xml)
<Context>
<Resource name="jdbc/my-ds" auth="Container" type="javax.sql.DataSource"
maxActive="80" maxIdle="50" maxWait="10000"
username="aaaa" password="****" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/DBNAME" />
</Context>
(appcontext.xml)
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/my-ds"/>
</bean>
也可以集成如
spring
框架直接配成
bean
。因为之前
jboss
就用了
spring,
所以还是用
spring bean
来配置一个
Apache common DBCP
实例。
(Mysql, oracle
只需要改
driver
为
oracle.jdbc.driver.OracleDriver, url
为
connection string(
如
jdbc:oracle:thin:@$TNSNAME
或者
jdbc:oracle:thin:@$TNSSTRING, username, password)
<?xml version=”1.0” encoding=”utf-8” ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="my-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value=”com.mysql.jdbc.Driver” />
<property name="url" value=”jdbc:mysql://localhost:3306/DBNAME” />
<property name="username" value=”aaaa” />
<property name="password" value=”***” / >
<property name="maxActive" value=”80” />
<property name="maxIdle" value=”50” />
</bean>
</beans>
如此的配置在
Jboss/Tomcat
上都是可以成功的,不过据
http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
里说到,
Common DBCP
是单线程模式的,复杂的(
60+ classes
),缓慢的方式了,
Apache
基金组织已经改写了变成
Tomcat JDBC Connection Pool
组件。
Tomcat JDBC CP
的
spring
配置如下(需要
tomcat-jdbc.jar
复制到
project.war/WEB-INF/lib
里,当然如果配置成
global resource
则需要放在
$TOMCAT_HOME/lib
里,该文件在
build tomcat
时可以得到):
<?xml version=”1.0” encoding=”utf-8” ?>
<!-- !DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" http://www.springframework.org/dtd/spring-beans.dtd
旧版本用法
,
不再支持
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<bean id="my-ds" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://localhost:3306/DBNAME"
p:username="aaaa"
p:password="****"
p:initialSize="10"
p:minIdle="10"
p:maxIdle="50"
p:maxActive="80"
p:maxWait="10000"
p:jmxEnabled="true"
/>