|
@@ -17,6 +17,7 @@ import javax.sql.DataSource;
|
|
|
import java.sql.*;
|
|
import java.sql.*;
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
+import java.util.Set;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @Description 注册动态数据源,初始化数据源和提供了执行动态切换数据源的工具类,EnvironmentAware(获取配置文件配置的属性值)
|
|
* @Description 注册动态数据源,初始化数据源和提供了执行动态切换数据源的工具类,EnvironmentAware(获取配置文件配置的属性值)
|
|
@@ -126,12 +127,16 @@ public class DynamicDataSourceRegister implements ImportBeanDefinitionRegistrar,
|
|
|
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
|
|
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
|
|
|
//添加默认数据源
|
|
//添加默认数据源
|
|
|
targetDataSources.put("dataSource", this.defaultDataSource);
|
|
targetDataSources.put("dataSource", this.defaultDataSource);
|
|
|
- DynamicDataSourceContextHolder.dataSourceIds.add("dataSource");
|
|
|
|
|
|
|
+ Set<String> dataSourceIds = DynamicDataSourceContextHolder.getDataSourceIds();
|
|
|
|
|
+ dataSourceIds.add(String.valueOf(dataSourceIds));
|
|
|
|
|
+ DynamicDataSourceContextHolder.setDataSourceIds(dataSourceIds);
|
|
|
//添加其他数据源
|
|
//添加其他数据源
|
|
|
targetDataSources.putAll(slaveDataSources);
|
|
targetDataSources.putAll(slaveDataSources);
|
|
|
|
|
+ Set<String> dataSourceIdSet = DynamicDataSourceContextHolder.getDataSourceIds();
|
|
|
for (String key : slaveDataSources.keySet()) {
|
|
for (String key : slaveDataSources.keySet()) {
|
|
|
- DynamicDataSourceContextHolder.dataSourceIds.add(key);
|
|
|
|
|
|
|
+ dataSourceIdSet.add(key);
|
|
|
}
|
|
}
|
|
|
|
|
+ DynamicDataSourceContextHolder.setDataSourceIds(dataSourceIdSet);
|
|
|
//创建DynamicDataSource
|
|
//创建DynamicDataSource
|
|
|
GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
|
|
GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
|
|
|
beanDefinition.setBeanClass(DynamicDataSource.class);
|
|
beanDefinition.setBeanClass(DynamicDataSource.class);
|