67 lines
2.1 KiB
Java
67 lines
2.1 KiB
Java
package com.pictc.config;
|
|
|
|
import java.sql.SQLException;
|
|
import javax.sql.DataSource;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import com.alibaba.druid.pool.DruidDataSource;
|
|
import com.pictc.jdbc.JdbcContextUtils;
|
|
import com.pictc.utils.StringUtils;
|
|
|
|
@Configuration
|
|
public class JdbcConfig {
|
|
|
|
@Value("${spring.datasource.dynamic.datasource.master.username:itc_dne}")
|
|
private String globalUsername;
|
|
|
|
@Value("${spring.datasource.dynamic.datasource.master.password:itc_dne}")
|
|
private String globalPassword;
|
|
|
|
@Value("${spring.datasource.dynamic.datasource.master.driver-class-name:com.kingbase8.Driver}")
|
|
private String globalDriver;
|
|
|
|
@Bean
|
|
public JdbcContextUtils jdbcContextUtils() throws SQLException {
|
|
JdbcContextUtils contextUtils = new JdbcContextUtils();
|
|
contextUtils.setLogSource(logDataSource());
|
|
return contextUtils;
|
|
}
|
|
|
|
@Bean
|
|
public DataLogDbConfig logDataDbConfig() {
|
|
return new DataLogDbConfig();
|
|
}
|
|
|
|
/**
|
|
* 额外的日志数据源配置
|
|
*/
|
|
public DataSource logDataSource() throws SQLException {
|
|
DruidDataSource dataSource = new DruidDataSource();
|
|
DataLogDbConfig dbConfig = logDataDbConfig();
|
|
// 日志数据库连接信息
|
|
dataSource.setUrl(dbConfig.getUrl());
|
|
dataSource.setUsername(StringUtils.opt(dbConfig.getUsername(),globalUsername));
|
|
dataSource.setPassword(StringUtils.opt(dbConfig.getPassword(),globalPassword));
|
|
dataSource.setDriverClassName(StringUtils.opt(dbConfig.getDriverClassName(),globalDriver));
|
|
|
|
// 日志库连接池参数(可独立配置)
|
|
dataSource.setInitialSize(5);
|
|
dataSource.setMinIdle(3);
|
|
dataSource.setMaxActive(20);
|
|
dataSource.setMaxWait(20000);
|
|
dataSource.setTimeBetweenEvictionRunsMillis(45000);
|
|
dataSource.setMinEvictableIdleTimeMillis(1200000);
|
|
|
|
// 连接验证
|
|
dataSource.setValidationQuery("SELECT 1");
|
|
dataSource.setTestWhileIdle(true);
|
|
|
|
return dataSource;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|