各リクエストに対して作成されたシングルトンオブジェクト
-
08-09-2020 - |
質問
範囲が基本的にのみ要求のみであるSINLGETOMオブジェクトを作成したい。これはエラーを収集するために使用され、返信を送ってもエラーを送信する必要があります。 私はこのことに向けてポインタを提供することができますか? 私は春を使用しています。
Spring Container Singletonオブジェクトスコープセッションまたはリクエストを使用したが、まだMUオブジェクトは以前のリクエスト
から値を保持していますアスペクトjでこのエラーオブジェクトを使用しています。静的バインディングで問題を引き起こす可能性があります
解決
シングルトンがあなたがここに欲しいものであることはわかりません - 2つの要求が同時に到着した場合、彼らはシングルトンオブジェクトを共有し、彼らのエラーは混同されます。
エラーを保持してスレッドローカルオブジェクトに入れるオブジェクトを作成することは可能です。オブジェクトの範囲は要求によって制約され、ThreadLocalオブジェクト内のアクセスは、紹介を中心に参照しなくても、アプリケーション内から簡単に達成されます。
他のヒント
についてはどうですか
//sync this code
if(request.getAttribute("someKey") == null){
// create object and set it
}
. スプリングコンテナにオブジェクトライフサイクルを要求にするように設定した場合、それはそのHTTPREQUESTのためだけに存在しているべきです。
一般にスプリングのような直接噴射容器の場合は、要求ごとに対象のライフサイクルまたはオブジェクトスコープを設定すると、それが受け取る各HTTPリクエストに対してオブジェクトの新しいインスタンスを作成する必要があります。
これを行っていない場合は、それがあなたの構成と関係がある可能性が高いと思います。
シングルトンは、豆を作ったときにスプリングコンテナのデフルトンであると思うようにするので、要求ごとにオブジェクトスコープを設定する必要があります。
豆の香り > http://static.springsource.org/spring/docs/2.5.x / reference / beans.html