如果进行多线程异步编排的时候因为不同于主线程,所以会丢失主线程的request,解决方法将主线程的request属性添加到异步线程的request中
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
CompletableFuture<Void> getAddressFuture = CompletableFuture.runAsync(() -> {
//1、找member服务获取当前用户的所有收货地址
RequestContextHolder.setRequestAttributes(requestAttributes);
List<MemberAddressVo> addressList = memberClient.getAddressByUserId(userId);
orderConfirmVo.setMemberAddressVos(addressList);
}, executor);