租户运行时代理
这是一个工具类,用于切换租户运行时,保护租户ID上下文
下面这段代码演示问题所在
void methodA(){
// 因为某些特殊原因,需要手动指定租户
TenantContextHolder.setTenantNo(1);
// do something ...
}
void methodB(){
// 因为某些特殊原因,需要手动指定租户
TenantContextHolder.setTenantNo(2);
methodA();
// 此时租户ID已经变成 1
// do something ...
}
嵌套设置租户ID会导致租户上下文难以维护,并且很难察觉,容易导致数据错乱。