2017-01-22 6 views
0

私はJava EEで新しく、今では電卓用のJAX-RS/Jersey Webサービスを作成します。計算には2つの数値があるので、キャッシュに入れたい結果は異なるが、キャッシュには2つの数値をキーとし、値として結果を入れたいと思う。このようなアノテーション付きジャージキャッシュ

何か:

@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

EHCacheとして、またはいくつかの他の)キャッシュマネージャを設定する必要があります。http://stackoverflow.com/questions/10934316/jersey-default-cache-キャッシュへの制御なし – Rouliboy

答えて

0

CacheResult注釈の挙動が正しい:CacheResultで注釈方法はGeneratedCacheKeyが生成され、注釈付きメソッドが実際に実行する前にCache.get(オブジェクト)と呼ばれて呼び出される

。値がキャッシュ内に見つかった場合は、その値が返され、注釈付きメソッドは決して実際には実行されません。値が見つからない場合、注釈付きメソッドが呼び出され、返された値は生成されたキーと共にキャッシュに格納されます。

しかし、あなたはまだあなたがこのスレッドを見ることができます

関連する問題