#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
для получения запроса, которая не может быть передана таким образом