【问题标题】:Create instance of Prototype object on the fly with paramters使用参数动态创建原型对象的实例
【发布时间】:2011-10-03 16:29:34
【问题描述】:

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

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

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 方法吗?

【问题讨论】:

    标签: java spring


    【解决方案1】:

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

    如果你想传递一个额外的参数 - 你可以在你获得实例之后这样做。例如:

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

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多