策略缓存映射
DATA_CLEANER_MAP:策略类型 → 数据清洗器创建器映射DATA_LOADER_MAP:策略类型 → 数据加载器创建器映射HashMap 存储,支持快速查找创建器类型
Supplier<DataCleaner<?, ?>> 作为清洗器创建器Supplier<DataLoader<?, ?>> 作为加载器创建器执行流程:
::new 创建 Supplier 实例已注册的策略类型:
数据清洗器策略:
CALL_DATA → CallDataCleanerTRANS_STD → TransStdDataCleanerCALL_OPEN_INFO → CallOpenInfoDataCleanerTRANS_OPEN → TransOpenDataCleanerTRANS_IN_OUT → TransInOutDataCleaner数据加载器策略:
CALL_DATA → CallStdDataLoaderTRANS_STD → TransStdDataLoaderCALL_OPEN_INFO → CallOpenInfoDataLoaderTRANS_OPEN → TransOpenDataLoaderTRANS_IN_OUT → TransInOutDataLoadercreateDataCleaner(StrategyType strategyType, String funcRegx, FileInfo currentSheet)执行流程:
DATA_CLEANER_MAP 中获取对应策略的创建器supplier.get() 创建清洗器实例cleaner.init(funcRegx, currentSheet) 进行初始化createDataLoader(StrategyType strategyType)执行流程:
DATA_LOADER_MAP 中获取对应策略的创建器supplier.get() 创建加载器实例registerDataCleaner(StrategyType strategyType, Supplier<DataCleaner<?, ?>> supplier):动态注册清洗器策略registerDataLoader(StrategyType strategyType, Supplier<DataLoader<?, ?>> supplier):动态注册加载器策略工厂模式
CleanFactory 统一创建清洗器和加载器实例策略模式
DataCleaner 和 DataLoader 接口StrategyType 动态选择策略懒加载模式
StreamingEtlListener 中按需创建清洗器和加载器[模板ID] → [StrategyType.fromCode(mainId)] → [CleanFactory.createDataCleaner()/createDataLoader()]
↓
[从缓存获取创建器] → [创建实例] → [初始化] → [返回实例]
策略管理增强:
错误处理增强:
性能优化:
监控增强:
扩展性增强:
新增数据类型:
DataCleaner 和 DataLoader 接口CleanFactory 静态代码块中注册新策略策略替换:
CleanFactory 中更新对应的策略注册动态策略:
registerDataCleaner 和 registerDataLoader 方法