From 59972ce8f9128858866c17655fc2d034d023b976 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期五, 07 二月 2025 17:33:15 +0800 Subject: [PATCH] zjh20250207 --- ltkj-framework/src/main/java/com/ltkj/framework/datasource/DynamicDataSource.java | 21 ++++++++++++++++++++- 1 files changed, 20 insertions(+), 1 deletions(-) diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/datasource/DynamicDataSource.java b/ltkj-framework/src/main/java/com/ltkj/framework/datasource/DynamicDataSource.java index b82b6dc..d3e53c1 100644 --- a/ltkj-framework/src/main/java/com/ltkj/framework/datasource/DynamicDataSource.java +++ b/ltkj-framework/src/main/java/com/ltkj/framework/datasource/DynamicDataSource.java @@ -1,6 +1,7 @@ package com.ltkj.framework.datasource; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import javax.sql.DataSource; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; @@ -11,6 +12,7 @@ * @author ltkj */ public class DynamicDataSource extends AbstractRoutingDataSource { + private final Map<Object, Object> targetDataSources = new ConcurrentHashMap<>(); // 瀛樺偍鎵�鏈夋暟鎹簮 public DynamicDataSource(DataSource defaultTargetDataSource, Map<Object, Object> targetDataSources) { super.setDefaultTargetDataSource(defaultTargetDataSource); super.setTargetDataSources(targetDataSources); @@ -19,6 +21,23 @@ @Override protected Object determineCurrentLookupKey() { + System.out.println("褰撳墠鏁版嵁婧� -> "+ DynamicDataSourceContextHolder.getDataSourceType()); return DynamicDataSourceContextHolder.getDataSourceType(); } -} \ No newline at end of file + + public void addTargetDataSource(String key, DataSource dataSource) { + targetDataSources.put(key, dataSource); + super.setTargetDataSources(new ConcurrentHashMap<>(targetDataSources)); // 鏇存柊鐩爣鏁版嵁婧� + super.afterPropertiesSet(); // 閲嶆柊鍒濆鍖栨暟鎹簮 + } + + // 鍏佽澶栭儴璁块棶鎵�鏈夌洰鏍囨暟鎹簮 + @Override + public void setTargetDataSources(Map<Object, Object> targetDataSources) { + super.setTargetDataSources(targetDataSources); + } + + public Map<Object, Object> getTargetDataSources() { + return targetDataSources; // 鑾峰彇鎵�鏈夌洰鏍囨暟鎹簮 + } +} -- Gitblit v1.8.0