2012-02-14 8 views
1

私は春に基づいてWebアプリケーションを持っています。 MyEndpointextends AbstractMarshallingPayloadEndpointに豆でも渡されたいくつかのクラスMyClassを保持している豆が定義されています。のSpring Beanと変更豆パラメータ

MyClasstrueに豆にいくつかのブール値のパラメータを設定しています。

アプリケーションがこのパラメータをプログラム的にfalseに変更する場合、次のリクエストでもfalseに設定されるか、デフォルトのBeanパラメータ-が含まれますか?

答えて

0

これは、Beanのscopeによって異なります(指定しない場合は、デフォルトでsingletonになります)。

  1. それはsingleton範囲であれば、そのBeanの1つのインスタンスは、アプリケーションのコンテキストであり、そしてあなたがそのBeanを求めるたびに、あなたはその単一のインスタンスを取得します。このスコープでリクエスト内で変更すると、変更は維持されます。
  2. スコープがprototypeの場合、アプリケーションコンテキストを尋ねるたびに新しいインスタンスが(同じパラメータで作成されて)与えられます。あなたはこのスコープのリクエストでそれを変更する場合は、このオブジェクトの別のインスタンスを取得する場合、その変更は無視されます。

これらは最も一般的に使用されています(少なくともSpringでは私の時間と同じです)。そこ他のスコープ(リクエスト、セッション、globalsession)があるが、あなたはdocumentation on them that Spring providesをお読みください。

0

このプロパティは、アプリケーションのビジネスロジックに応じて動的に変更するだけでなく、すべての新しい要求にリセットしたい場合(特にLookup Method Injection

ファクトリーメソッドを考える(それ以外の魔法を行いますスコープを要求)
関連する問題