fegin 远程调用如何传递 BladeUser 到远程?

Blade 未结 1 69
tongyi
tongyi 剑侠 17小时前

我们通过fegin调用创建单据,BizServiceImpl 中 resolveEntity() 方法通过AuthUtil.getUser()获取 BladeUser


通过之前的帖子官方建议通过userId参数传递,这样内部封装的方法是无法正常运行的。

private void resolveEntity(T entity) {
   try {
       BladeUser user = AuthUtil.getUser();
       Date now = DateUtil.now();
       if (entity.getId() == null) {
          ....


是否可以通过core包中 BladeFeignRequestInterceptor 类实现header参数传递到远程? 有具体的配置方式吗

1条回答
  • BladeUser user = AuthUtil.getUser();
    这个只是会去自动处理,如果在多线程、异步环境,就算没有用feign,也照样获取不到。这种特殊情况,自然就是根据userId,去UserCache调用或者直接userService.getById来获取到用户,然后把用户的信息手动set给entity再入库了。

    不需要再去做封装的,这样会更复杂。直接简单点手动赋值就行。


    如果你要通过线程传递,可以参考TenantUtil的写法方式来拓展。

    0 讨论(0)
代码语言
提交回复