diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java
index 383deeb..f275e86 100644
--- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java
+++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java
@@ -22,7 +22,7 @@ public class ServiceNameConstants {
*/
public static final String FILE_SERVICE = "muyu-file";
- public static final String MUYU_KVT = "muyu-dataSource";
+ public static final String MUYU_KVT = "muyu-source";
diff --git a/muyu-modules/muyu-data-standard/pom.xml b/muyu-modules/muyu-data-standard/pom.xml
new file mode 100644
index 0000000..4a7f8cb
--- /dev/null
+++ b/muyu-modules/muyu-data-standard/pom.xml
@@ -0,0 +1,34 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-modules
+ 3.6.3
+
+
+ muyu-data-standard
+ muyu-data-standard数据标准包
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.muyu
+ muyu-common-core
+
+
+
+ org.projectlombok
+ lombok
+ provided
+
+
+
\ No newline at end of file
diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataModel.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataModel.java
new file mode 100644
index 0000000..f997642
--- /dev/null
+++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataModel.java
@@ -0,0 +1,47 @@
+package com.muyu.common.data.standard;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 数据模型 DataModel
+ *
+ * @author LeYang
+ * on 2024/5/8
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class DataModel {
+
+
+ /**
+ * 数据键
+ */
+ private String key;
+
+ /**
+ * 数据值
+ */
+ private Object value;
+
+ /**
+ * 源标准-枚举 数据库的标准
+ */
+ private String sourceType;
+
+ /**
+ * 处理标准 枚举
+ */
+
+ private String processType;
+
+ /**
+ * 处理类型
+ */
+ private Class> processClass;
+
+}
diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataSetModel.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataSetModel.java
new file mode 100644
index 0000000..90591ce
--- /dev/null
+++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataSetModel.java
@@ -0,0 +1,41 @@
+package com.muyu.common.data.standard;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 一页 DataSetModel
+ *
+ * @author LeYang
+ * on 2024/5/8
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class DataSetModel {
+ //[[DataModel,DataModel,DataModel],[DataModel,DataModel,DataModel]
+ /**
+ * 集合
+ */
+ private RecordModel[] dataSetModel = null;
+
+ public int setLength;
+
+
+ public static DataSetModel build(int dataSetModelLength){
+ return build(new RecordModel[dataSetModelLength]);
+ }
+
+ public static DataSetModel build(RecordModel[] dataSetModel){
+ return DataSetModel.builder()
+ .dataSetModel(dataSetModel)
+ .setLength(dataSetModel.length)
+ .build();
+ }
+
+
+
+}
diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/RecordModel.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/RecordModel.java
new file mode 100644
index 0000000..1f89904
--- /dev/null
+++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/RecordModel.java
@@ -0,0 +1,60 @@
+package com.muyu.common.data.standard;
+
+import com.muyu.common.data.util.EtlUtils;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Arrays;
+
+/**
+ * 记录模型 RecordModel
+ *
+ * @author LeYang
+ * on 2024/5/8
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class RecordModel {
+ //[DataModel,DataModel,DataModel]
+
+ /**
+ * 不用数组处理 1.集合由动态扩容 减少扩容次数
+ * 2.初始化 数组的话一个就是一个 集合是一个的话 是16 多占15个 初始化是16
+ * 指定主键
+ */
+ private String[] keys;
+
+ /**
+ * 主键数据
+ */
+ private DataModel[] keyForValues;
+
+ /**
+ * 记录数据 由多个模型组成
+ */
+ private DataModel[] dataModelArr=null;
+
+ /**
+ * 记录长度
+ */
+ private int recordLength;
+
+ public static RecordModel build(int dataModelLength,String[] keys){
+ return build(new DataModel[dataModelLength],keys);
+ }
+
+ public static RecordModel build(DataModel[] dataModelArr,String[] keys){
+ return RecordModel.builder()
+ .dataModelArr(dataModelArr)
+ .recordLength(dataModelArr.length)
+ .keys(keys)
+ .keyForValues(
+ Arrays.stream(dataModelArr).filter(dataModel -> EtlUtils.valAsArr(keys,dataModel.getKey()))
+ .toArray(value -> new DataModel[0]))
+ .build();
+ }
+}
diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/util/EtlUtils.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/util/EtlUtils.java
new file mode 100644
index 0000000..f50d111
--- /dev/null
+++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/util/EtlUtils.java
@@ -0,0 +1,25 @@
+package com.muyu.common.data.util;
+
+/**
+ * etl工具类 EtlUtils
+ *
+ * @author Yangle
+ * Date 2024/5/15 14:26
+ */
+public class EtlUtils {
+
+ /**
+ * 判断可以key是否存在数组当中
+ * @param keys key数值
+ * @param key key值
+ * @return 是否存在
+ */
+ public static boolean valAsArr(String[] keys,String key){
+ for (String _key : keys) {
+ if (_key.equals(key)){
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java
index d03a89f..823333e 100644
--- a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java
+++ b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java
@@ -9,8 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
-import java.sql.Connection;
-import java.util.HashMap;
import java.util.List;
/**
@@ -26,26 +24,22 @@ public class KvtClientRunner implements ApplicationRunner {
private RemoteDataManagerService remoteDataManagerService;
- static HashMap map = new HashMap<>();
@Override
- public void run(ApplicationArguments args) throws Exception {
-
-
- Result> listResult = remoteDataManagerService.selectKvt();
- List data = listResult.getData();
- data.stream().forEach(kvt -> {
- DataSourceConfig.init(kvt) ;
- });
-
-
-
-
-
-
-
+ public void run(ApplicationArguments args) {
+ Result> list = remoteDataManagerService.selectKvt();
+ List data = list.getData();
+ data = data.stream().filter(kvt -> kvt.getType() == 1).toList();
+ if(data != null) {
+ data.stream().forEach(kvt -> {
+ DataSourceConfig.init(kvt) ;
+ log.info("初始化成功");
+ });
+ } else {
+ log.warn("数据源为空");
+ }
diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/pool/ConnectionPoolContext.java b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/pool/ConnectionPoolContext.java
new file mode 100644
index 0000000..8745521
--- /dev/null
+++ b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/pool/ConnectionPoolContext.java
@@ -0,0 +1,65 @@
+package com.muyu.source.connection.pool;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.muyu.common.core.exception.ServiceException;
+import com.muyu.common.core.utils.StringUtils;
+import lombok.extern.log4j.Log4j2;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 连接池上下文 ConnectionPoolContext
+ *
+ * @author Yangle
+ * Date 2024/5/15 15:05
+ */
+@Log4j2
+public class ConnectionPoolContext {
+
+ private ConnectionPoolContext(){
+
+ }
+
+ /**
+ * 进行存储所有连接的容器
+ */
+ private final static ConcurrentHashMap connectionPoolContext=
+ new ConcurrentHashMap<>(16);
+
+ /**
+ * 新增连接池
+ * @param key 键
+ * @param druidDataSource 连接池
+ */
+ public static void setConnection(String key,DruidDataSource druidDataSource){
+ if (connectionPoolContext.containsKey(key)){
+ throw new ServiceException(
+ StringUtils.format("连接池key-[{}]已经存在",key)
+ );
+ }
+ connectionPoolContext.put(key,druidDataSource);
+ }
+
+ /**
+ * 通过key获取连接池
+ * @param key 键
+ * @return
+ */
+ public static DruidDataSource getConnection(String key){
+ return connectionPoolContext.get(key);
+ }
+
+ /**
+ * 通过key删除连接池
+ * @param key
+ */
+ public static void removeConnection(String key){
+ try( DruidDataSource druidDataSource= connectionPoolContext.remove(key)){
+ druidDataSource.close();
+ }catch (RuntimeException e){
+ log.warn("连接池关闭异常:[{}]-[{}]",key,e.getMessage(),e);
+ }
+ }
+
+
+}
diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/service/ConnectionPoolManagement.java b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/service/ConnectionPoolManagement.java
new file mode 100644
index 0000000..1a1ca31
--- /dev/null
+++ b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/service/ConnectionPoolManagement.java
@@ -0,0 +1,97 @@
+package com.muyu.source.connection.service;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.pool.DruidPooledConnection;
+import com.muyu.source.domain.Kvt;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.stereotype.Component;
+
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.muyu.source.connection.pool.ConnectionPoolContext.getConnection;
+
+/**
+ * 连接池的管理 ConnectionPoolManagement
+ *
+ * @author Yangle
+ * Date 2024/5/15 15:19
+ */
+@Log4j2
+@Component
+public class ConnectionPoolManagement {
+ private final static ThreadLocal