/**
* @author changneng
* @version 1.0
* @title: DruidConfig
* @description: 配置druid數據源
* @date 2019/3/1117:07
*/
@Configuration
public class DruidConfig {
private static Logger logger = LoggerFactory.getLogger(DruidConfig. class );
@Value ( "${spring.datasource.url}" )
private String dbUrl;
@Value ( "${spring.datasource.username}" )
private String username;
@Value ( "${spring.datasource.password}" )
private String password;
@Value ( "${spring.datasource.driverClassName}" )
private String driverClassName;
@Value ( "${spring.datasource.initialSize}" )
private int initialSize;
@Value ( "${spring.datasource.minIdle}" )
private int minIdle;
@Value ( "${spring.datasource.maxActive}" )
private int maxActive;
@Value ( "${spring.datasource.maxWait}" )
private int maxWait;
@Value ( "${spring.datasource.timeBetweenEvictionRunsMillis}" )
private int timeBetweenEvictionRunsMillis;
@Value ( "${spring.datasource.minEvictableIdleTimeMillis}" )
private int minEvictableIdleTimeMillis;
@Value ( "${spring.datasource.validationQuery}" )
private String validationQuery;
@Value ( "${spring.datasource.testWhileIdle}" )
private boolean testWhileIdle;
@Value ( "${spring.datasource.testOnBorrow}" )
private boolean testOnBorrow;
@Value ( "${spring.datasource.testOnReturn}" )
private boolean testOnReturn;
@Value ( "${spring.datasource.poolPreparedStatements}" )
private boolean poolPreparedStatements;
@Value ( "${spring.datasource.maxPoolPreparedStatementPerConnectionSize}" )
private int maxPoolPreparedStatementPerConnectionSize;
@Value ( "${spring.datasource.filters}" )
private String filters;
@Value ( "{spring.datasource.connectionProperties}" )
private String connectionProperties;
@Bean //聲明其爲Bean實例
@Primary //在同樣的DataSource中,首先使用被標註的DataSource
public DataSource dataSource(){
DruidDataSource datasource = new DruidDataSource();
datasource.setUrl( this .dbUrl);
datasource.setUsername(username);
datasource.setPassword(password);
datasource.setDriverClassName(driverClassName);
//configuration
datasource.setInitialSize(initialSize);
datasource.setMinIdle(minIdle);
datasource.setMaxActive(maxActive);
datasource.setMaxWait(maxWait);
datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
datasource.setValidationQuery(validationQuery);
datasource.setTestWhileIdle(testWhileIdle);
datasource.setTestOnBorrow(testOnBorrow);
datasource.setTestOnReturn(testOnReturn);
datasource.setPoolPreparedStatements(poolPreparedStatements);
datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
try {
datasource.setFilters(filters);
} catch (SQLException e) {
logger.error( "druid初始化失敗" , e);
}
datasource.setConnectionProperties(connectionProperties);
return datasource;
}
}
|