Ver código fonte

1.删除日志语句2.数据源注册修改

chenw 7 anos atrás
pai
commit
e93cddffc4

+ 9 - 1
bi-core/src/main/java/com/usoftchina/bi/core/jdbc/DynamicDataSourceContextHolder.java

@@ -12,7 +12,15 @@ public class DynamicDataSourceContextHolder {
     //存放当前线程使用的数据源类型信息
     private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
     //存放数据源id
-    public static Set<String> dataSourceIds = new HashSet<String>();
+    private static Set<String> dataSourceIds = new HashSet<String>();
+
+    public static Set<String> getDataSourceIds() {
+        return dataSourceIds;
+    }
+
+    public static void setDataSourceIds(Set<String> dataSourceIds) {
+        DynamicDataSourceContextHolder.dataSourceIds = dataSourceIds;
+    }
 
     //设置数据源
     public static void setDataSourceType(String dataSourceType) {

+ 7 - 2
bi-core/src/main/java/com/usoftchina/bi/core/jdbc/DynamicDataSourceRegister.java

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

+ 3 - 8
bi-server/src/main/java/com/usoftchina/bi/server/service/dataSource/DataBasesService.java

@@ -206,20 +206,15 @@ public class DataBasesService {
         if (target.size() == 0) {
             target.putAll(dataSourceRegister.getSlaveDataSources());
         }
-        LOGGER.info("target={}, containsKey({}) is {}", target, databasesInfo.getId(), target.containsKey(String.valueOf(databasesInfo.getId())));
         if (!target.containsKey(String.valueOf(databasesInfo.getId()))) {
-            LOGGER.info("创建数据源");
             target.put(databasesInfo.getId(), dataSourceRegister.buildDataSource(dsMap));
-            LOGGER.info("创建数据源结束");
             DynamicDataSource datasource = (DynamicDataSource) ContextUtil.getBean("dataSource");
-            LOGGER.info("datasource={}", JsonUtils.toJsonString(datasource));
             datasource.setTargetDataSources(target);
-            LOGGER.info("setTargetDataSources...ok");
             datasource.afterPropertiesSet();
-            LOGGER.info("afterPropertiesSet...ok");
 
-            DynamicDataSourceContextHolder.dataSourceIds.add(String.valueOf(databasesInfo.getId()));
-            LOGGER.info("注册数据源完成,id={}", databasesInfo.getId());
+            Set<String> dataSourceIds = DynamicDataSourceContextHolder.getDataSourceIds();
+            dataSourceIds.add(String.valueOf(databasesInfo.getId()));
+            DynamicDataSourceContextHolder.setDataSourceIds(dataSourceIds);
         }
     }
 

+ 6 - 3
bi-server/src/test/java/com/usoftchina/bi/test/server/TestDataSource.java

@@ -18,6 +18,7 @@ import org.springframework.test.context.junit4.SpringRunner;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 
 @RunWith(SpringRunner.class)
@@ -70,9 +71,11 @@ public class TestDataSource{
         DynamicDataSource datasource=(DynamicDataSource)app.getBean("dataSource");
         datasource.setTargetDataSources(target);
         datasource.afterPropertiesSet();
-        
-        DynamicDataSourceContextHolder.dataSourceIds.add("UAS_TEST");
-        
+
+        Set<String> dataSourceIds = DynamicDataSourceContextHolder.getDataSourceIds();
+        dataSourceIds.add("UAS_TEST");
+        DynamicDataSourceContextHolder.setDataSourceIds(dataSourceIds);
+
 		testQuery();
 	}