Использование ScopedValue вместо нитолокального в сервисном фильтре в приложении Spring BootJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Использование ScopedValue вместо нитолокального в сервисном фильтре в приложении Spring Boot

Сообщение Anonymous »

Наше приложение в значительной степени использует Threadlocals, где мы читаем значения из параметров ServletRequest и предоставляем тезисы в качестве глобального контекста на уровне потока для других служб.

Код: Выделить всё

@Component
@Order(1)
public class ParameterHandlingFilter implements Filter {

public static ThreadLocal EXAMPLE = new ThreadLocal();

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws ServletException, IOException {
HttpServletRequest req = (HttpServletRequest) request;

EXAMPLE.set(req.getParameter("example"));
try {
chain.doFilter(request, response);
}finally {
EXAMPLE.remove();
}
}
}
< /code>
Множество статей, которые предлагают использовать предварительно просмотренную функцию значений общеобразовательных значений в качестве лучшего подхода, особенно с учетом виртуальных тем. Sonarqube. < /p>
public class ParameterHandlingFilterScopedValue implements Filter {

public static final ScopedValue EXAMPLE = ScopedValue.newInstance();

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
HttpServletRequest req = (HttpServletRequest) request;

ScopedValue.where(EXAMPLE, req.getParameter("example")).run(() -> {
try {
chain.doFilter(request, response);
}
catch (Exception e) {
throw new RuntimeException(e);
}
});
}
}
Есть ли лучшее решение для этого использования?

Подробнее здесь: https://stackoverflow.com/questions/795 ... g-boot-app
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»