2016-08-25 1 views
0

単純な使い方で指定されたhttpリクエストを同期させたい場合​​。 いくつのジャージーが@Pathクラスをインスタンス化するのだろうと思います。ジャージインスタンス@Pathクラスはどうですか?

@Path("homepage") 
class HomePage { 
    @GET 
    def index = synchronized { 
    ... 
    } 
} 

私はindexメソッドを同期しようとしています。ジャージーインスタンスHomePageクラスの数は、ロックとして追加の単一のオブジェクトを使用すべきかどうかの問題です。
ジャージーインスタンスの倍数がHomePageの場合、HomePageではなく、別のロックオブジェクトを使用する必要があります。対照的に、​​は上記の例のように単純です。

答えて

0

ジャージはすべてのリクエストに対して新しいオブジェクトを作成します。私はScalaの新機能ですが、このコードはうまくいくはずです:

@Path("homepage") 
class HomePage { 
    private object HomePageLock 
    @GET 
    def index = { HomePageLock.synchronized { 
    ... 
    } 
} 
+0

ありがとうございます。ところで、 'object'内部scalaクラスは一意ではありません。この時点で' HomePageLock'を 'HomePage'の外側に置いても問題ありません。 – LoranceChen

関連する問題