9
Grailsサービスクラスがシングルトンタイプであることが分かりました。どのような理由で、サービスクラスはシングルトンであると定義されていますか?Grailsサービスクラスがシングルトンである理由
ありがとうございます。
Grailsサービスクラスがシングルトンタイプであることが分かりました。どのような理由で、サービスクラスはシングルトンであると定義されていますか?Grailsサービスクラスがシングルトンである理由
ありがとうございます。
Grailsのサービスは、used with different scopesかもしれがちょうどsingleton
、クラスにこのようなものを追加することではない:マニュアルから
static scope = "flow"
:
prototype
- 新しいサービスが作成されるすべての別のクラスに注入される時間request
- リクエストごとに新しいサービスが作成されますflash
- 新しいサービスは、現在および次の要求のみflow
に作成されます - ウェブでサービスのために存在して流れる - ウェブでサービスフローconversation
の範囲のために存在して流れます会話の範囲。すなわち、ルートの流れとそのサブsession
を流れ - サービスの1つのインスタンスのみが今までの主な理由が存在する - サービスは、ユーザーセッション
singleton
(デフォルト)の範囲のために作成されますsingleton
をデフォルトとして選択すると、新しいオブジェクトの作成によるオーバーヘッドがなくなるため、メモリ使用量の削減(1つのインスタンスのみが座っている)と処理時間の短縮の両方でパフォーマンスが向上します。
今私は疑いがあります。トランザクションをサポートする 'm1'という名前のサービスがあるとします。現在、2人のユーザーが 'm1 'に同時にアクセスしています。ただし、' service'はシングルトンですが、トランザクションサポートと同時に2人のユーザーを同時に処理する方法はありますか? –
[取引に関するマニュアルの全セクション](http://grails.org/doc/latest/guide/services.html#declarativeTransactions)があります。トランザクションはメソッド呼び出し中に処理されるため、(サービスに状態を格納していない限り)スコープには入りません。 – OverZealous