package com.qxueyou.scc.config;
|
|
import com.alibaba.druid.pool.DruidDataSource;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Primary;
|
|
import javax.sql.DataSource;
|
import java.sql.SQLException;
|
|
@Configuration
|
@EnableConfigurationProperties(MySqlDataSourceConfig.class)
|
public class DruidDataSourceConfig {
|
private static Logger logger = LoggerFactory.getLogger(DruidDataSourceConfig.class);
|
|
@Autowired
|
private MySqlDataSourceConfig mySqlDataSourceConfig;
|
|
@Bean(name="druidDataSource")
|
@Primary
|
public DataSource druidDataSource(){
|
DruidDataSource datasource = new DruidDataSource();
|
|
datasource.setUrl(mySqlDataSourceConfig.getUrl());
|
datasource.setUsername(mySqlDataSourceConfig.getUsername());
|
datasource.setPassword(mySqlDataSourceConfig.getPassword());
|
datasource.setDriverClassName(mySqlDataSourceConfig.getDriverClassName());
|
datasource.setInitialSize(mySqlDataSourceConfig.getInitialSize());
|
datasource.setMinIdle(mySqlDataSourceConfig.getMinIdle());
|
datasource.setMaxActive(mySqlDataSourceConfig.getMaxActive());
|
datasource.setMaxWait(mySqlDataSourceConfig.getMaxWait());
|
datasource.setTimeBetweenEvictionRunsMillis(mySqlDataSourceConfig.getTimeBetweenEvictionRunsMillis());
|
datasource.setMinEvictableIdleTimeMillis(mySqlDataSourceConfig.getMinEvictableIdleTimeMillis());
|
datasource.setValidationQuery(mySqlDataSourceConfig.getValidationQuery());
|
datasource.setTestWhileIdle(mySqlDataSourceConfig.isTestWhileIdle());
|
datasource.setTestOnBorrow(mySqlDataSourceConfig.isTestOnBorrow());
|
datasource.setTestOnReturn(mySqlDataSourceConfig.isTestOnReturn());
|
datasource.setPoolPreparedStatements(mySqlDataSourceConfig.isPoolPreparedStatements());
|
try {
|
datasource.setFilters(mySqlDataSourceConfig.getFilters());
|
} catch (SQLException e) {
|
logger.error("Druid configuration initialization filter error.", e);
|
}
|
return datasource;
|
}
|
}
|