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