Я разрабатываю REST API с использованием среды Java Spring.
При вызове этих API мне нужно проверить разрешения, где мне нужно будет сделать запрос к БД для получения данных о разрешениях. Дело в том, что есть несколько областей, проверяющих разрешение в одном запросе, и я не хочу делать несколько обращений к БД, поэтому я намерен кэшировать данные разрешений только для этого одного запроса.
IЯ пытался создать bean-объект области видимости запроса, который работает, но не во всех случаяхБывают случаи, когда bean-объект с областью запроса не может быть создан, например, при выполнении запланированного кода с использованием аннотации @Scheduled, просто потому, что это не запрос. Другой случай - при проверке разрешений с помощью WebSecurityConfigurerAdapter, компонент также не был создан в то время.
Итак, я рассмотрел другое возможное решение, а именно: https://github.com/rinoto/spring-request-cache. Если я использую этоРешение, мне нужно будет удалить кэш из threadLocal каждый раз, когда операция завершена. Мне не очень удобно использовать это решение, так как я не специалист по Java, и я прочитал, что не рекомендуется использовать threadLocal в качестве кэша.
Каков наилучший способ достижения моей цели? Мой вопрос прост, кешировать некоторые данные только для этого запроса. Есть ли библиотека, которая поддерживает это?
Мне трудно поверить, что мой запрос не является нормальным вариантом использования, или это не нормальный вариант использования?