37 lines
925 B
Java
37 lines
925 B
Java
package com.erp.tenant;
|
|
|
|
/**
|
|
* 요청 단위 tenant DB 컨텍스트.
|
|
* SubdomainResolverFilter 가 세팅하고, (Phase 2 이후) TenantRoutingDataSource 가 읽는다.
|
|
* Phase 1 단계에선 세팅/클리어만 수행. 실제 라우팅은 Phase 2에서 붙음.
|
|
*/
|
|
public final class DbContextHolder {
|
|
|
|
/** 메타 DB (invyone.com / admin.invyone.com / 서브도메인 없음) 를 가리키는 센티넬 */
|
|
public static final String META = "__META__";
|
|
|
|
private static final ThreadLocal<String> CTX = new ThreadLocal<>();
|
|
|
|
private DbContextHolder() {}
|
|
|
|
public static void set(String dbName) {
|
|
CTX.set(dbName);
|
|
}
|
|
|
|
public static void setMeta() {
|
|
CTX.set(META);
|
|
}
|
|
|
|
public static String get() {
|
|
return CTX.get();
|
|
}
|
|
|
|
public static boolean isMeta() {
|
|
return META.equals(CTX.get());
|
|
}
|
|
|
|
public static void clear() {
|
|
CTX.remove();
|
|
}
|
|
}
|