路泰机电科技体检——数据平台后端
zhaowenxuan
2025-08-04 f89a6c6acd475d84dd069df828d40ce27446e0fa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.example.config.db;
 
import lombok.extern.slf4j.Slf4j;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
 
import javax.sql.DataSource;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
 
@Slf4j
public class HospDynamicDataSource extends AbstractRoutingDataSource {
 
    private final Map<Object, Object> targetDataSources = new ConcurrentHashMap<>();
 
    @Override
    protected Object determineCurrentLookupKey() {
        return DataSourceContextHolder.getDataSourceKey();
    }
 
    public void addTargetDataSource(String key, DataSource dataSource) {
        if (dataSource != null) {
            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;
    }
}