Служба кэширования REST с помощью Spring - PullRequest
0 голосов
/ 08 мая 2018

У меня есть служба REST, которая возвращает javax.ws.rs.core.Response. Этот ответ фактически содержит StreamingOutput, который заполняется в цикле объектами, которые я передаю, что-то вроде этого:

@Cacheable("params")
public Response RetrieveAreas(String params)
{
    (...)
    StreamingOutput adminAreaStream = new StreamingOutput()
    {
        ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();

            @Override
            public void write(OutputStream output) throws IOException, WebApplicationException
            {
                try
                {
                     (the loops and object writing/flushing here)
                }
                (...)
            }
    return Response.ok(adminAreaStream).build();
}

Этот SO вопрос касается REST-кэширования Spring, но не касается аспекта StreamingOutput. Мои вопросы:

  • Правильно ли размещено кэширование при применении на уровне метода (RetrieveAreas) - или оно должно быть помещено в цикл, где объекты загружаются и записываются в поток?
  • Что, кроме @Cacheable, необходимо для подключения минимального рабочего кеша Spring для моего сценария? Я посмотрел этот учебник , но неясно по многим аспектам, таким как присвоение имен кешу, необходимость в менеджере кеша, связь между строковым аргументом ConcurrentCacheManager и именем кеша (делают ли они должны быть одинаковыми или это просто совпадение) и т.д. Если это вообще возможно, пожалуйста, укажите маркированный список того, что делать (1. Создайте класс диспетчера кэша, 2. пометьте метод с помощью @Cacheable и т. Д.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...