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; } }