feat() 连接池初版V1.1

dev
chao 2024-05-11 18:04:54 +08:00
parent 064873ecc7
commit af247c3d7b
1 changed files with 11 additions and 11 deletions

View File

@ -36,23 +36,23 @@ public class DataSourceClientRunner implements ApplicationRunner {
private DataTypeRemoteService dataTypeRemoteService; private DataTypeRemoteService dataTypeRemoteService;
@Override @Override
public void run(ApplicationArguments args){ public void run(ApplicationArguments args) {
try { try {
Result<List<DataSource>> dataSourceResultList = dataSourceRemoteService.dataSourceList(); Result<List<DataSource>> dataSourceResultList = dataSourceRemoteService.dataSourceList();
if (dataSourceResultList.getData() == null || dataSourceResultList.getData().isEmpty()){ if (dataSourceResultList.getData() == null || dataSourceResultList.getData().isEmpty()) {
log.error("数据源列表为空"); log.error("数据源列表为空");
return; return;
} }
List<DataSource> dataSourceList = dataSourceResultList.getData(); List<DataSource> dataSourceList = dataSourceResultList.getData();
log.info("数据源列表查询成功当前数据为{}" ,dataSourceList); log.info("数据源列表查询成功当前数据为{}", dataSourceList);
// 获取数据源类型列表 // 获取数据源类型列表
Result<List<DataType>> dataTypeResultList = dataTypeRemoteService.list(); Result<List<DataType>> dataTypeResultList = dataTypeRemoteService.list();
if (dataTypeResultList.getData() == null || dataTypeResultList.getData().isEmpty()){ if (dataTypeResultList.getData() == null || dataTypeResultList.getData().isEmpty()) {
log.error("数据源类型列表为空"); log.error("数据源类型列表为空");
return; return;
} }
List<DataType> dataTypeList = dataTypeResultList.getData(); List<DataType> dataTypeList = dataTypeResultList.getData();
log.info("数据源类型列表查询成功当前数据为{}" ,dataTypeList); log.info("数据源类型列表查询成功当前数据为{}", dataTypeList);
// 将数据源类型转换为Map ## Function.identity() 这个方法是返回一个自己 // 将数据源类型转换为Map ## Function.identity() 这个方法是返回一个自己
Map<Long, DataType> dataTypeMap = dataTypeList.stream() Map<Long, DataType> dataTypeMap = dataTypeList.stream()
.collect( .collect(
@ -63,21 +63,21 @@ public class DataSourceClientRunner implements ApplicationRunner {
// 创建数据源Map // 创建数据源Map
HashMap<String, javax.sql.DataSource> stringDataSourceHashMap = new HashMap<>(); HashMap<String, javax.sql.DataSource> stringDataSourceHashMap = new HashMap<>();
// 遍历数据源列表 // 遍历数据源列表
for (DataSource datum : dataSourceList){ for (DataSource datum : dataSourceList) {
// 过滤相应的数据源类型 // 过滤相应的数据源类型
Optional<DataType> dataType = Optional.ofNullable(dataTypeMap.get(datum.getTypeId())); Optional<DataType> dataType = Optional.ofNullable(dataTypeMap.get(datum.getTypeId()));
if (dataType.isPresent()){ if (dataType.isPresent()) {
javax.sql.DataSource dataSource = DataSourceConfig.dataSource(datum, dataType.get()); javax.sql.DataSource dataSource = DataSourceConfig.dataSource(datum, dataType.get());
stringDataSourceHashMap.put(datum.getDataSourceIp()+"-"+datum.getDataSourceDatabaseName(),dataSource); stringDataSourceHashMap.put(datum.getDataSourceIp() + "-" + datum.getDataSourceDatabaseName(), dataSource);
}else { } else {
log.error("未找到数据源 ID 为 {} 的数据类型", datum.getTypeId()); log.error("未找到数据源 ID 为 {} 的数据类型", datum.getTypeId());
} }
Singleton instance = Singleton.getInstance(stringDataSourceHashMap); Singleton instance = Singleton.getInstance(stringDataSourceHashMap);
Map<String, javax.sql.DataSource> map = instance.getMap(); Map<String, javax.sql.DataSource> map = instance.getMap();
log.info("数据源连接池初始化成功{}",map); log.info("数据源连接池初始化成功{}", map);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("初始化数据源连接池失败{}",e.getMessage()); log.error("初始化数据源连接池失败{}", e.getMessage());
throw new RuntimeException(e); throw new RuntimeException(e);
} }