叶松
2023-12-01 8a51417e8182e163613b5d8a35d9fe2c4a6c74dc
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();
    }
}