我需要在没有构造函数参数的情况下创建一个完整的Object.像这样的东西
Class A {
private final int timeOut
public A(int timeout)
{
this.timeOut = timeout;
}
//...
}
Run Code Online (Sandbox Code Playgroud)
我希望这个Bean能够进行弹簧管理,以便我以后可以使用Spring AOP.
<bean id="myBean" class="A" singleton="false">
</bean>
Run Code Online (Sandbox Code Playgroud)
但是我的bean需要超时才能作为动态值传递 - 有没有办法在构造函数中创建一个动态值被绑定的spring托管bean?
ska*_*man 25
BeanFactory有一个getBean(String name, Object... args)方法,根据javadoc,它允许你指定用于覆盖bean定义自己的参数的构造函数参数.因此,您可以在beans文件中放置一个默认值,然后在需要时指定"实际"运行时值,例如
<bean id="myBean" class="A" scope="prototype">
<constructor-arg value="0"/> <!-- dummy value -->
</bean>
Run Code Online (Sandbox Code Playgroud)
然后:
getBean("myBean", myTimeoutValue);
Run Code Online (Sandbox Code Playgroud)
我自己没试过,但它应该有效.
PS scope="prototype"现在更singleton="false"受欢迎,这是不推荐的语法 - 它更明确,但做同样的事情.
| 归档时间: |
|
| 查看次数: |
19047 次 |
| 最近记录: |