2021与蓝度共同重构项目,服务端
chenjiantian
2021-11-29 a35594535efe8f5499cd8fec4496ca0951ef3e23
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
37
38
39
40
41
42
43
44
package com.sandu.ximon.admin.context;
 
import lombok.experimental.UtilityClass;
 
/**
 * 多租户Holder
 *
 * @author pangu
 * @since 2020-9-8
 */
@UtilityClass
public class CustomerInspectContextHolder {
 
    /**
     * 支持父子线程之间的数据传递
     */
    private final ThreadLocal<String> THREAD_LOCAL_TENANT = new ThreadLocal<>();
 
    /**
     * TTL 设置租户ID<br/>
     * <b>谨慎使用此方法,避免嵌套调用。尽量使用 {@code TenantBroker} </b>
     *
     * @param tenantId 租户ID
     */
    public void setTenantId(String tenantId) {
        THREAD_LOCAL_TENANT.set(tenantId);
    }
 
    /**
     * 获取TTL中的租户ID
     *
     * @return String
     */
    public String getTenantId() {
        return THREAD_LOCAL_TENANT.get();
    }
 
    /**
     * 清除tenantId
     */
    public void clear() {
        THREAD_LOCAL_TENANT.remove();
    }
}