2011-10-03 5 views
0

コード実行中にオブジェクトのプロトタイプスコープインスタンスを「オンザフライ」に作成する必要があります。パラメータを使用してプロトタイプオブジェクトのインスタンスを作成する

私は、ルックアップ方法がいい解決策になることを知っている:私はcreateCommandメソッドにパラメータを設定することができます

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-lookup-method-injection

<!-- a stateful bean deployed as a prototype (non-singleton) --> 
<bean id="command" class="fiona.apple.AsyncCommand" scope="prototype"> 
<!-- inject dependencies here as required --> 
</bean> 

<!-- commandProcessor uses statefulCommandHelper --> 
<bean id="commandManager" class="fiona.apple.CommandManager"> 
<lookup-method name="createCommand" bean="command"/> 
</bean> 

答えて

2

私はあなたができるとは思いません。なぜなら、コンテナはそのパラメータで何をすべきか分からないからです。あなたはそれに何を期待していますか? lookupメソッドは、オブジェクトの新しいインスタンスを取得し、コンテナから取得します。そのため、すべての依存関係が返される前に注入されています。

追加の引数を渡したい場合は、インスタンスを取得した後で行うことができます。例:

Foo someParam = ...; 
CommandManager manager = createCommand(); 
manager.doSomething(someParam); 
+0

Bozhoさん、ありがとうございましたが、私は確信していました... –

関連する問題