以下是配置myecliprice8.5、mysql5.5、tomcat6.0环境中进行,其他环境没有进行测试
1、加载sping配置信息的时候,增加记录config路劲:
System.setProperty(CommonContantsKey.DB_CONFIG_FILE, event.getServletContext()
.getRealPath("/WEB-INF/config/dbConfig.properties"));
并增加记录路径的key
public class CommonContantsKey
{
public static String DB_CONFIG_FILE = "db_config_file";
}
2、在config下面增加dbConfig.properties资源文件,文件内容是:
dataSourceName=bbbDataSource
driverClass=driverClass
jdbcUrl=jdbc:mysql://127.0.0.1:3306/bbb?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true
user=root
password=密文
initialPoolSize=1
minPoolSize=1
maxPoolSize=90
maxIdleTime=30
idleConnectionTestPeriod=15
maxStatements=0
checkoutTimeout=10000
3、修改sping配置,让ComboPooledDataSource重写,如下:
<bean id="dataSource" class="com.huawei.gts.impl.util.DataSourceFactory" factory-method="getDataSourceFactory"/>
4、重写ComboPooledDataSource的方法:
package com.aaa.bbb.impl.util;
import java.io.FileInputStream;
import java.util.Properties;
import javax.sql.DataSource;
import com.aaa.bbb.impl.util.des.DESjc;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DataSourceFactory
{
public DataSourceFactory()
{
}
public static DataSource getDataSourceFactory()
{
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try
{
Properties pro = new Properties();
pro.load(new FileInputStream(System.getProperty(CommonContantsKey.DB_CONFIG_FILE)));
String strPassword = pro.getProperty("password");
strPassword = DESjc.decryptDES(strPassword);
dataSource.setDataSourceName(pro.getProperty("dataSourceName"));
dataSource.setDriverClass(pro.getProperty("driverClass"));
dataSource.setJdbcUrl(pro.getProperty("jdbcUrl"));
dataSource.setUser(pro.getProperty("user"));