File was renamed from ltkj-hosp/src/main/java/com/ltkj/db/DynamicDataSource.java |
| | |
| | | package com.ltkj.db; |
| | | |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.sql.DataSource; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | public class DynamicDataSource extends AbstractRoutingDataSource { |
| | | public class HospDynamicDataSource extends AbstractRoutingDataSource { |
| | | |
| | | private final Map<Object, Object> targetDataSources = new HashMap<>(); // 存储所有数据源 |
| | | private final Map<Object, Object> targetDataSources = new ConcurrentHashMap<>(); // 存储所有数据源 |
| | | |
| | | @Override |
| | | protected Object determineCurrentLookupKey() { |
| | |
| | | // 添加目标数据源 |
| | | public void addTargetDataSource(String key, DataSource dataSource) { |
| | | targetDataSources.put(key, dataSource); |
| | | super.setTargetDataSources(targetDataSources); // 更新目标数据源 |
| | | super.setTargetDataSources(new ConcurrentHashMap<>(targetDataSources)); // 更新目标数据源 |
| | | super.afterPropertiesSet(); // 重新初始化数据源 |
| | | } |
| | | |