|
@ -1,6 +1,8 @@
|
|
|
package com.yihu.wlyy.statistics.config;
|
|
|
|
|
|
import com.alibaba.druid.pool.DruidDataSource;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
|
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
@ -15,27 +17,127 @@ import javax.sql.DataSource;
|
|
|
*/
|
|
|
@Configuration
|
|
|
public class DataSourceConfig {
|
|
|
|
|
|
@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.primaryReadWrite.url}")
|
|
|
private String primaryReadWriteUrl;
|
|
|
@Value("${spring.datasource.primaryReadWrite.username}")
|
|
|
private String primaryReadWriteUsername;
|
|
|
@Value("${spring.datasource.primaryReadWrite.password}")
|
|
|
private String primaryReadWritePassword;
|
|
|
/**
|
|
|
* 主数据源
|
|
|
* @return
|
|
|
*/
|
|
|
@Bean(name = "primaryReadWrite")
|
|
|
@Primary//主库 默认不写名字用这个
|
|
|
@ConfigurationProperties(prefix="spring.datasource.primaryReadWrite")
|
|
|
public DataSource primaryReadWriteDataSource() {
|
|
|
return DataSourceBuilder.create().build();
|
|
|
DruidDataSource datasource = new DruidDataSource();
|
|
|
datasource.setUrl(primaryReadWriteUrl);
|
|
|
datasource.setUsername(primaryReadWriteUsername);
|
|
|
datasource.setPassword(primaryReadWritePassword);
|
|
|
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);
|
|
|
|
|
|
return datasource;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Value("${spring.datasource.primaryRead.url}")
|
|
|
private String primaryReadUrl;
|
|
|
@Value("${spring.datasource.primaryRead.username}")
|
|
|
private String pprimaryReadUsername;
|
|
|
@Value("${spring.datasource.primaryRead.password}")
|
|
|
private String primaryReadPassword;
|
|
|
|
|
|
@Bean(name = "primaryRead")
|
|
|
@ConfigurationProperties(prefix="spring.datasource.primaryRead")
|
|
|
public DataSource primaryReadDataSource() {
|
|
|
return DataSourceBuilder.create().build();
|
|
|
DruidDataSource datasource = new DruidDataSource();
|
|
|
datasource.setUrl(primaryReadUrl);
|
|
|
datasource.setUsername(pprimaryReadUsername);
|
|
|
datasource.setPassword(primaryReadPassword);
|
|
|
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);
|
|
|
|
|
|
return datasource;
|
|
|
}
|
|
|
|
|
|
|
|
|
@Value("${spring.datasource.im.url}")
|
|
|
private String imUrl;
|
|
|
@Value("${spring.datasource.im.username}")
|
|
|
private String imUsername;
|
|
|
@Value("${spring.datasource.im.password}")
|
|
|
private String imPassword;
|
|
|
@Bean(name = "imData")
|
|
|
@ConfigurationProperties(prefix="spring.datasource.im")
|
|
|
public DataSource imDataSource() {
|
|
|
return DataSourceBuilder.create().build();
|
|
|
public DataSource imDataSource() {DruidDataSource datasource = new DruidDataSource();
|
|
|
datasource.setUrl(imUrl);
|
|
|
datasource.setUsername(imUsername);
|
|
|
datasource.setPassword(imPassword);
|
|
|
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);
|
|
|
|
|
|
return datasource;
|
|
|
}
|
|
|
|
|
|
|