2

Spring3.1を使用しています

私のアプリケーションには、一種の Bean マネージャーがあります。

そのマネージャーはリクエストを取得でき、リクエストごとに、独自の一意のパラメーターで開始されるBeanの新しいインスタンスを動的に作成する必要があります。

パラメータは request メソッドを介して取得されます。

この Bean は生きていて、非同期で動作する必要があります。(たとえば、jms 呼び出しをリッスンしたり、要求に応じてメソッドを実行したりします..)

さらに、Bean を破棄するオプションも必要です。

これらの Bean はセッションに似ている可能性があるため、ユーザーがログオフすると、それらの Bean が破棄されます。

ある種の Bean リストまたは Bean プールを作成し、ある種のマネージャーで管理する必要があることを理解しています。

これらの Bean を動的に作成し、それらを破棄するまで存続させるにはどうすればよいですか?

どうすればそのようなことを実装できますか?

4

2 に答える 2

3

この意味で、最も簡単な方法は、StaticApplicationContextその親コン​​テキストを共通コンテキスト (全体で共有したい Bean を保持するコンテキスト) として作成することです。これは、次のようなことで到達できます。

StaticApplicationContext innerContext = new StaticApplicationContext(parentContext);

この後、Spring でインスタンス化する Bean を宣言して、すべての AOP 要素、オートワイヤリング、およびその他の機能をアタッチする必要があるため、次のようなことを行う必要があります。

innerContext.registerSingleton("beanName", beanClass);

登録後、次のように Bean をインスタンス化できます。

innerContext.getBean(beanClass);

もちろん、Spring のスコープの実装があるため、ドキュメント、基本的に ServletContext をパラメーターとして渡すメソッドSessionを確認することをお勧めします。WebApplicationContextloadParentContext

于 2012-07-08T14:40:31.257 に答える