作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在我的Spring-boot应用程序中使用MultiTenantConnectionProvider
和CurrentTenantIdentifierResolver
实现了数据库 Multi-Tenancy
我有一个连接数据库的静态实例,一个由 Multi-Tenancy 动态连接的实例,
一切正常,直到我被迫使用多重处理。
New Thread似乎松散了有关该动态连接的信息(静态很好),所以我有一个问题,是否可以像往常一样将连接信息传递给新线程以使用JPA Repository?
感谢您的回答和建议
最佳答案
我们需要的是将租户ID 从当前线程传递到新创建的线程,以在 Multi-Tenancy 模式下工作。为此,我们必须维护TenantContext,如下所示:
public class TenantContext {
private static final ThreadLocal<Tenant> tenantHolder = new ThreadLocal<>();
public static Tenant getTenant() {
Tenant tenant = tenantHolder.get();
return Objects.isNull(tenant) ? Tenant.DEFAULT : tenant;
}
public static void setTenant(Tenant tenant) {
tenantHolder.set(tenant);
}
public static void clearTenant() {
tenantHolder.remove();
}
}
public class TenantAwareThread extends Thread {
private Tenant tenant = null;
public TenantAwareThread(Runnable target) {
super(target);
this.tenant = TenantContext.getTenant();
}
@Override
public void run() {
TenantContext.setTenant(this.tenant);
super.run();
TenantContext.clearTenant();
}
}
new TenantAwareThread(() -> {
//do operation
}).start();
关于java - 数据库 Multi-Tenancy 和新线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918239/
嘿。本周的一个教程,其中一个问题要求通过使用其他函数 formatLine 和 formatList 创建一个函数 formatLines,以格式化行列表。 我的代码是这样的; type Line =
我是一名优秀的程序员,十分优秀!