DAO が通常どのスコープを持つ必要があるか
-
03-07-2019 - |
質問
dao がいかなる状態も保持しないということは問題外です。
ただし、クラスに簡単にアクセスするには、プロトタイプ( = 毎回新しい) を使用するのが良いでしょうか? それともシングルトンを使用するのが良いでしょうか?
単純なオブジェクトの作成は Dao にとって安価です。通常、SessionFactoryのみを保持し、シングルトンのリストからオブジェクトにアクセスするのは同様に高価な場合があります。
明確化:この質問の焦点は、daos のスコープに関する共通の規則があるかどうかです。
解決
質問がアーキテクチャに関するものである場合、DAOを作業単位または実行中のトランザクションにスコーピングします。これにより、クロストランザクション汚染およびスレッドの問題の可能性が減少します。
パフォーマンスに関する質問の場合、答えはプロファイラー内にあり、特定のワークロード。
他のヒント
または、ここで説明するようにプロトタイプをプールと組み合わせて使用します。
またはここ:
編集:明らかに、ここではスプリングが使用されていると思います。それ以外の場合は申し訳ありません
iは、「完璧な」ものはないという結論に達しました。これを決定する方法。シングルトンスコープは、リクエストごとに異なるセッションを使用するため、Webアプリでそれを行うにはおそらく間違った方法です。そのため、webappでは-リクエストスコープは正しい答えかもしれませんが、バックグラウンドタスクではなくリクエストでのみ使用している場合のみです。プロトタイプのスコープは実行可能です-ただし、そこに複雑なデータを保持していない場合のみです。
所属していません StackOverflow