天天看點

請求頭增強

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);
	});