2016-09-16 3 views
1

У меня есть ресурс Джерси (версия 2), который во время обработки запроса создает объект, который используется в течение всего запроса.объект кеша в ресурсе Джерси?

Я хотел бы кэшировать этот объект в локальном хранилище потоков, чтобы другие обработчики запросов, которые используют один и тот же поток, могли повторно использовать этот объект.

Возможно ли это? Как это делается на Джерси? Я совершенно не знаком с Джерси и с Java в целом, пожалуйста, помогите. Могу ли я использовать javax.ws.rs.container.ContainerRequestContext для этого? Как? Как очистить кеш?

EDIT:

Конкретные вопросы:

  1. Если я использую javax.ws.rs.container.ContainerRequestContext кэшировать мои объекты, в какой момент я могу очистить кэш?

  2. Очищает кеш, необходимый вообще в этом случае?

  3. Полезно ли использовать хранилище потоков в качестве кеша в сервлетах?

+1

Поможет ли это? http://stackoverflow.com/questions/32854944/using-server-request-and-response-filters-for-threadlocal-storage-in-a-resteasy – kgdinesh

+0

@kgdinesh, спасибо. Я видел этот вопрос, поэтому я спросил, могу ли я использовать 'javax.ws.rs.container.ContainerRequestContext'. Я не знаю, как очистить кеш и нужно ли вообще очищать кеш. И главный вопрос заключается в том, является ли хорошей практикой использование хранилища потоков в качестве кеша в сервлетах. – akonsu

+0

В этом случае я бы рекомендовал вам отредактировать ваш вопрос и переписать его соответствующим образом. – kgdinesh

ответ

0

Желательно избегать кеширования в REST, поскольку предполагается, что он не имеет гражданства. Но самым простым решением может быть использование объекта HttpSession для хранения вашего объекта и последующего его получения, а затем утилизации.

Для получения дополнительной информации вы можете передать этот вопрос: Link

Смежные вопросы