张晓波
2023-09-19 164694c47c35d6654df69b533e8dbf8b5423efc5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.thhy.general.config.mysql;
 
 
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class DynamicDataSource extends AbstractRoutingDataSource {
 
    private static final ThreadLocal<String> contextHolder = new ThreadLocal<>();
 
 
    @Override
    protected Object determineCurrentLookupKey() {
        return contextHolder.get();
    }
 
    public static void setDataSource(String name) {
        contextHolder.set(name);
    }
 
    // 在 finally 中及时 remove
    public static void clearDataSource() {
        contextHolder.remove();
    }
}