package com.gschen.customer.config;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.Map;
public class BizContext {
private static final ThreadLocal<Map<String, Object>> CONTEXT = new InheritableThreadLocal<>();
@SuppressWarnings("all")
public static <T> T get(String key, T defaultVal) {
T t = (T) getLocalMap().get(key);
return t == null ? defaultVal : t;
}
public static <T> T get(String key) {
return get(key, null);
}
public static void set(String key, Object obj) {
if (StringUtils.isBlank(key) || obj == null) {
return;
}
getLocalMap().put(key, obj);
}
public static void remove(String key) {
getLocalMap().remove(key);
}
public static void clear() {
CONTEXT.remove();
}
private static Map<String, Object> getLocalMap() {
Map<String, Object> map = CONTEXT.get();
if (map == null) {
map = new HashMap<>(4);
CONTEXT.set(map);
}
return map;
}
}