使用参数动态创建Prototype对象的实例

时间:2011-10-03 16:29:35

标签: java spring

我需要在代码执行期间“动态”创建对象的原型范围实例。

我知道查找方法是个很好的解决方案:

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>

我可以将参数设置为createCommand方法吗?

1 个答案:

答案 0 :(得分:2)

我认为你不能,因为容器不知道如何处理该参数。你对它有什么期望呢?查找方法只获取对象的新实例,从容器中获取它。因此它在返回之前注入了所有依赖项。

如果要传递其他参数 - 可以在获取实例后执行此操作。例如:

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