import java.util.HashMap;
import java.util.Map;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class DynamicDataSource extends AbstractRoutingDataSource {
public static ThreadLocal<String> key = new ThreadLocal<String>();
private Map<Object, Object> copyTargets = new HashMap<Object, Object>();
@Override
protected Object determineCurrentLookupKey() {
return key.get();
}
public void setCopyTargets(Map<Object, Object> copyTargets) {
this.copyTargets = copyTargets;
setTargetDataSources(copyTargets);
afterPropertiesSet();
}
public Map<Object, Object> getCopyTargets() {
return copyTargets;
}
}
多数据源之动态数据源
最新推荐文章于 2024-05-10 10:01:47 发布
该博客介绍了如何使用Java实现一个动态数据源路由类,继承自`AbstractRoutingDataSource`。类中定义了一个`ThreadLocal`变量用于存储当前数据源键,并提供了设置和获取目标数据源的方法。这个动态数据源可以根据上下文切换不同的数据源,适用于多数据源的场景。
摘要由CSDN通过智能技术生成