Не удалось получить Requestcontextholder. getRequestAttributes() в CompletableFuture.RunAsync

#java

Вопрос:

Есть ли какой-либо способ использовать completableFuture.runAsync , чтобы получить RequestContextHolder.getRequestAttributes()

Комментарии:

1. Как насчет извлечения его за пределами CompletableFuture.RunAsync ? А затем использовать его в другом потоке.

2. Да, но как передать это дочернему потоку

Ответ №1:

Вот как мы извлекаем его за пределами CompletableFuture.RunAsync и используем его.

 private void extractRequestAttributes() {  final HttpServletRequest req = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())  .getRequest();   final String locationStr = req.getHeader("location");   CompletableFuture.runAsync(() -gt; {  useHeaders(locationStr);   });  }  private void useHeaders(String locationStr) {  // TODO Auto-generated method stub   }  

Комментарии:

1. У меня есть пользовательская аннотация useHeaders для получения запроса, которая не может быть передана таким образом