2017-01-22 15 views
0

Я новичок в Java EE, и теперь я пишу веб-сервис JAX-RS/Jersey для калькулятора. Результат, который я хочу поместить в кеш, поскольку у меня есть два числа для вычисления, но разные действия, я хотел бы поместить два числа в кеш как ключ и результат как значение.Джерси кеш с аннотацией

Что-то вроде этого:

@GET 
@Path("/add/{a}/{b}") 
@CacheResult 
public Response add(@PathParam("a") double a, @PathParam("b") double b, @PathParam("c") double c) { 
    return Response.ok(new CalculatorResult(a + b + c)).build(); 
} 

То есть, если метод помечается @CacheResult затем добавить ответ в кэш. И в следующий раз результат будет извлечен из кеша.
Возможно ли это?

+0

Вы можете посмотреть на эту тему: http://stackoverflow.com/questions/10934316/jersey-default-cache- управления к не-кэша – Rouliboy

ответ

0

Поведение CacheResult аннотации правильно:

Когда метод помечается CacheResult вызывается GeneratedCacheKey будет сгенерирован и Cache.get (Object) вызывается перед аннотированный метод фактически выполняет. Если в кэше найдено значение, оно возвращается, и аннотированный метод никогда не выполняется. Если значение не найдено, вызывается аннотированный метод и возвращаемое значение сохраняется в кеше с помощью сгенерированного ключа.

Но вам все равно придется настроить диспетчер кэша (в EHCache или какой-либо другой)