feat() 连接池初版V1.1
parent
064873ecc7
commit
af247c3d7b
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue