Это вторая лекция шестой сессии части 1 курса [Modern Backend] под названием «Scoped Values (2)».
В этой лекции мы подробно рассмотрим четыре основных принципа проектирования Scoped Values — официальной функции Java 25, практические шаблоны использования API, специальный механизм кэширования, а также ограничения и критерии, которые необходимо учитывать при их применении на практике.
📌 Основные темы:
-
Четыре принципа проектирования Scoped Values (неизменяемость, динамическая область видимости, однонаправленность, структурированность)
-
Сравнение времени жизни (Timeline) и поведения при затенении ThreadLocal и ScopedValue
-
Шаблоны объявления и привязки ScopedValue (понимание объектов where, run, call и Carrier)
-
Защита от путей без привязки и обработка исключений (get, isBound, orElse, orElseThrow)
-
Автоматическое наследование Scoped Values благодаря интеграции со структурированной конкурентностью (StructuredTaskScope)
-
Механизм 16 потокоспецифичных слотов кэша и принципы оптимизации производительности
-
Ограничения их применения в Servlet Filter по сравнению с HandlerInterceptor
-
Ограничения распространения через границы асинхронных потоков (ExecutorService, @Async, Reactor) и альтернативы
-
Три критерия для принятия решения об их использовании на практике и пошаговая стратегия рефакторинга
Подробно рассмотрим, как применять и использовать безопасное и высокопроизводительное Scoped Value, предоставляемое Java 25, в практических архитектурах.