Современный бэкенд — рефакторинг распространения контекста (1)

Современный бэкенд — рефакторинг распространения контекста (1)

Это первая лекция седьмой сессии части 1 курса [Modern Backend] — «Рефакторинг распространения контекста (1)».
В этой лекции мы проанализируем целевые участки и выполним структурный рефакторинг, чтобы перевести существующую логику распространения контекста на основе ThreadLocal в проекте доски объявлений на архитектуру на основе ScopedValue из Java 25.


📌 Основные рассматриваемые темы:

  • Обзор четырёх файлов, выбранных для рефакторинга (RequestContext, RequestContextFilter, PostCreationCoordinator и т. д.)

  • Пятиэтапная последовательность рефакторинга и подход, основанный на компиляторных ошибках

  • Анализ существующей структуры кода на основе ThreadLocal и выявление четырёх точек ручного управления, зависевших от соглашений, соблюдаемых разработчиками (set/clear)

  • Преобразование внутренней реализации держателя RequestContext для использования ScopedValue и расширение его API-методов runWith, callWith, getOrSystem и т. д.)

  • Замена точки входа веб-запроса (Servlet Filter) структурой привязки области действия Scoped Value

  • Внутри Servlet Filter, runWith / callWithПринципы обработки проверяемых исключений и ошибок компиляции, связанных с выводом типов в Java, которые могут возникнуть при использовании


Выйдите за рамки структурных ограничений существующего ThreadLocal и изучите процесс рефакторинга архитектуры Modern Java для безопасного распространения контекста.

Site footer