Spring MVC コントローラーはシングルトンですか? 質問する

Spring MVC コントローラーはシングルトンですか? 質問する

質問があります春 3 MVC @Controllersリクエストが来ると、コンテナはリクエストごとにコントローラの新しいインスタンスを作成します(アクションStruts 2 - ThreadLocal ActionContext) または単一のインスタンスがすべてのリクエストに応答しますか? デフォルトでは、コントローラー Bean はコンテキスト内のシングルトンですか?

Spring 3 MVC アプリケーションのガイドライン/ベスト プラクティスは何ですか? これらの設定は構成可能ですか? 構成する必要がありますか? 環境がクラスター化された環境の場合、大きく変わりますか? JVM/コンテナーが異なるため、変わらないと思いますが、信頼できる提案があれば歓迎します。

Spring のドキュメントを読みましたが、おそらく見逃したと思います。「これは私たちが実装した方法です」という回答、ポインタ、リンクがあれば助かります。ありがとうございます。

ベストアンサー1

Springコントローラはサーブレットと同様にシングルトン(Webアプリケーションごとに各コントローラのインスタンスが1つだけ存在する)です。通常、この動作を変更する意味はありません(変更できる場合も)。サーブレットのスレッドセーフティについてよくある落とし穴については、コントローラーにも当てはまります。

アプリケーションがクラスター化されている場合は、状態を回避するためにできる限りのことを行ってください。コントローラーの状態は、スレッドの問題を回避するために同期する必要があります。また、その状態をサーバー間で複製する可能性もありますが、これは非常にコストがかかり、面倒です。

おすすめ記事