0

我有一个对象被限定为原型,并且构造函数参数值是在运行时确定的。在我看来,我必须使用静态工厂方法来构造这个原型的实例。这是真的吗,我可以在文档中的什么地方找到它说明这个事实?我找不到任何讨论在运行时确定的构造函数值或引用。所有样本在启动时都有明确定义的值。

4

2 回答 2

2

基本上需要做的是:

applicationContext.getBean("beanName", new Object[]{arg1, arg2, arg3});

<bean id="beanName" class="my.package.className" scope="prototype">
  <constructor-arg index="0" type="java.lang.String" value=""/>
  //etc
</bean>

如果您的类在其他方面没有弹簧,并且您不希望 applicationContext 依赖项弄乱它们,那么工厂方法可能是可取的。

您还可以使用方法替换来隔离与弹簧相关的代码。

于 2012-06-27T18:41:26.937 回答
0

签出lookup-method(4.4.6.1 查找方法注入)。目前它不支持将参数传递给新创建的原型 bean,但这很快就会成为可能

于 2012-06-27T19:06:23.893 回答