当前位置: 首页 > 网络应用技术

使用线程插座传递线程之间的参数

时间:2023-03-08 15:29:03 网络应用技术

  传输用户参数,例如租户ID,TID,USERID,令牌等。这些参数与特定业务无关,但这是必要的(例如,在数据库中需要传递的租户ID,但是,如果使用该方法的参数,则基本上不使用其他业务代码),不可避免地会导致代码和可伸缩性检查的效果。

  整篇文章以租户ID为例。

  一般思考:当请求接口时,通常可以从令牌或用户信息中删除租户的ID。目前,在请求拦截器中,取出用户tenantid并将其放在线程中。当需要tenantid时,它将直接从线程中取出。通过这种方式,它可以确保简单性和有用性增加。

  本文使用ALI线程工具。

  /**

  * @author litongzero

  */

  @utilityClass

  公共类TenantContextholder {

  私人最终线局部 thread_local_tenant = new TransMittableThreadLocal<>();

  /**

  * TTL设置租户ID

  * @param tenantid

  */

  public void settenantid(integer tenantid){{{

  thread_local_tenant.set(tenantid);

  }

  /**

  *在TTL中获取房客ID

  * @返回

  */

  公共整数gettenantid(){

  return thread_local_tenant.get();

  }

  /**

  *清除当前线程中的租户

  *谨慎使用

  */

  public void clear(){

  thread_local_tenant.remove();

  }

  }在特定控制器,服务,映射器中,只要它是当前要求的线程,您就可以直接使用租户ID。

最新推荐
猜你喜欢