Grailsサービスクラスがシングルトンタイプであることがわかりました。どのような理由で、サービスクラスはシングルトンとして定義されていますか?
前もって感謝します。
Grails サービスは、クラスに次のようなものを追加することで、だけでなくさまざまなスコープで使用できます。 singleton
static scope = "flow"
マニュアルから:
prototype- 別のクラスに注入されるたびに、新しいサービスが作成されますrequest- リクエストごとに新しいサービスが作成されますflash- 現在および次のリクエストに対してのみ、新しいサービスが作成されますflow- Web フローでは、フローのスコープに対してサービスが存在します。conversation- Web フローでは、会話の範囲に対してサービスが存在します。つまり、ルート フローとそのサブ フローsession- ユーザー セッションのスコープに対してサービスが作成されるsingleton(デフォルト) - サービスのインスタンスは 1 つだけ存在します。デフォルトとして選択する主な理由はsingleton、新しいオブジェクトを作成するオーバーヘッドがなくなるため、メモリ使用量の削減 (インスタンスが 1 つだけ存在する) と処理時間の短縮の両方でパフォーマンスが向上するためです。