|
|
|
@ -19,6 +19,7 @@ import com.alibaba.druid.pool.DruidDataSource; |
|
|
|
|
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; |
|
|
|
|
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; |
|
|
|
|
import com.alibaba.druid.util.Utils; |
|
|
|
|
import com.ruoyi.common.utils.spring.SpringUtils; |
|
|
|
|
import com.ruoyi.framework.aspectj.lang.enums.DataSourceType; |
|
|
|
|
import com.ruoyi.framework.config.properties.DruidProperties; |
|
|
|
|
import com.ruoyi.framework.datasource.DynamicDataSource; |
|
|
|
@ -50,13 +51,32 @@ public class DruidConfig |
|
|
|
|
|
|
|
|
|
@Bean(name = "dynamicDataSource") |
|
|
|
|
@Primary |
|
|
|
|
public DynamicDataSource dataSource(DataSource masterDataSource, DataSource slaveDataSource) |
|
|
|
|
public DynamicDataSource dataSource(DataSource masterDataSource) |
|
|
|
|
{ |
|
|
|
|
Map<Object, Object> targetDataSources = new HashMap<>(); |
|
|
|
|
targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource); |
|
|
|
|
targetDataSources.put(DataSourceType.SLAVE.name(), slaveDataSource); |
|
|
|
|
setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource"); |
|
|
|
|
return new DynamicDataSource(masterDataSource, targetDataSources); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 设置数据源 |
|
|
|
|
* |
|
|
|
|
* @param targetDataSources 备选数据源集合 |
|
|
|
|
* @param sourceName 数据源名称 |
|
|
|
|
* @param beanName bean名称 |
|
|
|
|
*/ |
|
|
|
|
public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName) |
|
|
|
|
{ |
|
|
|
|
try |
|
|
|
|
{ |
|
|
|
|
DataSource dataSource = SpringUtils.getBean(beanName); |
|
|
|
|
targetDataSources.put(sourceName, dataSource); |
|
|
|
|
} |
|
|
|
|
catch (Exception e) |
|
|
|
|
{ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 去除监控页面底部的广告 |
|
|
|
|