質問があります春 3 MVC @Controllers
リクエストが来ると、コンテナはリクエストごとにコントローラの新しいインスタンスを作成します(アクションStruts 2 - ThreadLocal ActionContext
) または単一のインスタンスがすべてのリクエストに応答しますか? デフォルトでは、コントローラー Bean はコンテキスト内のシングルトンですか?
Spring 3 MVC アプリケーションのガイドライン/ベスト プラクティスは何ですか? これらの設定は構成可能ですか? 構成する必要がありますか? 環境がクラスター化された環境の場合、大きく変わりますか? JVM/コンテナーが異なるため、変わらないと思いますが、信頼できる提案があれば歓迎します。
Spring のドキュメントを読みましたが、おそらく見逃したと思います。「これは私たちが実装した方法です」という回答、ポインタ、リンクがあれば助かります。ありがとうございます。
ベストアンサー1
Springコントローラはサーブレットと同様にシングルトン(Webアプリケーションごとに各コントローラのインスタンスが1つだけ存在する)です。通常、この動作を変更する意味はありません(変更できる場合も)。サーブレットのスレッドセーフティについてよくある落とし穴については、コントローラーにも当てはまります。
アプリケーションがクラスター化されている場合は、状態を回避するためにできる限りのことを行ってください。コントローラーの状態は、スレッドの問題を回避するために同期する必要があります。また、その状態をサーバー間で複製する可能性もありますが、これは非常にコストがかかり、面倒です。