2017-01-22 4 views
0

Ich bin neu in Java EE und jetzt schreibe ich JAX-RS/Jersey Web Service für Rechner. Das Ergebnis, das ich in den Cache stellen möchte, da ich zwei Zahlen für die Berechnung aber verschiedene Aktionen habe, möchte ich zwei Zahlen im Cache als Schlüssel und Ergebnis als Wert setzen.Jersey Cache mit Anmerkung

Etwas wie folgt aus:

@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(); 
} 

Das heißt, wenn die Methode mit @CacheResult kommentierte wird dann die Antwort in den Cache hinzufügen. Und in der nächsten Zeit wird das Ergebnis aus dem Cache extrahiert.
Ist es möglich?

+0

Sie auf diesem Thread aussehen: http://stackoverflow.com/questions/10934316/jersey-default-cache- control-to-no-cache – Rouliboy

Antwort

0

Das Verhalten der CacheResult Annotation korrekt ist:

Wenn ein Verfahren mit CacheResult kommentierten ein GeneratedCacheKey erzeugt werden aufgerufen wird und Cache.get (Objekt) wird aufgerufen, bevor die kommentierte Methode tatsächlich ausführt. Wenn ein Wert im Cache gefunden wird, wird er zurückgegeben und die annotierte Methode wird nie wirklich ausgeführt. Wenn kein Wert gefunden wird, wird die annotierte Methode aufgerufen, und der zurückgegebene Wert wird im Cache mit dem generierten Schlüssel gespeichert.

Aber Sie haben noch Ihren Cache-Manager konfigurieren (wie EHCache oder eine andere)