1、restTemplate調用增加請求頭
1、一般寫法
ResultDTO resultDTO = restTemplate.postForObject(url, dto, ResultDTO.class);
2、增強寫法
//擷取目前請求頭
HttpServletRequest request = HttpContextUtils.getCurrentHttpRequest();
String applicationCode = "";
String token = "";
if(null != request){
applicationCode = request.getHeader("applicationCode");
token = request.getHeader("Authorization");
}
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("applicationCode",applicationCode);
httpHeaders.add("Authorization",token);
log.info("----applicationCode-->:{}",applicationCode);
log.info("----Authorization-->:{}",token);
ResultDTO resultDTO = restTemplate.postForObject(url, new HttpEntity(dto,httpHeaders), ResultDTO.class);
// 線程池
private static final ExecutorService EXECUTOR_SERVICE = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), 20, 60L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(10),
new ThreadFactoryBuilder().setNameFormat("thread--->" + "-%d").setDaemon(Boolean.FALSE).build());
1、一般寫法
Future<ResultDTO> future = EXECUTOR_SERVICE.submit(() -> balancePayment(purchaseBalanceManualDTO));
2、增強寫法
//擷取目前請求頭
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
Future<ResultDTO> future = EXECUTOR_SERVICE.submit(() -> {
RequestContextHolder.setRequestAttributes(attributes);
return balancePayment(purchaseBalanceManualDTO);
});