【发布时间】:2012-04-01 00:04:58
【问题描述】:
这是Multitenancy with Spring JPA的跟进
我选择使用“AbstractRoutingDataSource”。但是现在的问题是启动时初始化的数据源和实体管理器 bean。无论如何在春季配置它,在用户通过身份验证后它将以哪种方式初始化?
我能想到的另一个问题是如何处理并发。我把tenantId放在这个类中
public class ThreadLocalContextUtil {
private static final ThreadLocal<String> contextHolder =
new ThreadLocal<String>();
public static void setTenantId(String tenantId) {
Assert.notNull(tenantId, "customerType cannot be null");
contextHolder.set(tenantId);
}
public static String getTenantId() {
return (String) contextHolder.get();
}
public static void clearTenant() {
contextHolder.remove();
}
}
我能想到的解决方案是在数据源初始化后删除tenantId。对吗?
【问题讨论】:
标签: spring-security multi-tenant