2

私はJavaのRESTAPIを持っています。私が知りたいのはこれです:

1人の特定のクライアント(たとえば、Xという名前の人がコンピューターYを使用している)が同じuriに対して3回の呼び出しを行ったとします。(例:https ://stackoverflow.com/firstname/kasav/lastname/bere )。さらに、リソースに非静的カウンターがあるとします。

class ResourceA{
     int count = 0;

     @Get
     public Response service(){
        count++;
        //return count below
     }
}

これで、発信者は3つの呼び出しすべてに対して同じ応答を受け取りますか。

1

または、発信者1は最初の呼び出し、次に22番目の呼び出し、次に33番目の呼び出しを取得しますか。

一部の人にとってはこれは明らかかもしれませんが、私にはわかりません。助けてくれてありがとう。

4

2 に答える 2

1

JAX-RS仕様に正しく準拠しているものを使用していると仮定します。

3.1.1 ライフサイクルと環境

デフォルトでは、そのリソースへのリクエストごとに新しいリソース クラス インスタンスが作成されます。最初にコンストラクター (セクション 3.1.2 を参照) が呼び出され、次に要求された依存関係が注入され (セクション 3.2 を参照)、適切なメソッド (セクション 3.3 を参照) が呼び出され、最後にオブジェクトがガベージ コレクションで使用できるようになります。実装は、他のリソース クラスのライフサイクルを提供してもよい (MAY)。これらを指定するメカニズムは、この仕様の範囲外である。たとえば、制御の反転フレームワークに基づく実装は、そのフレームワークによって提供されるすべてのライフサイクル オプションをサポートする場合があります。

そのため、あなたの質問に対する答えは、1リクエストごとにクラスが開始されると、すべての発信者が受け取るということです。

JAX-RS 仕様については、JSR-311を参照してください。

于 2012-08-17T01:24:44.610 に答える