gpt4 book ai didi

java - 具有动态构造函数值的spring bean

转载 作者:IT老高 更新时间:2023-10-28 13:53:37 24 4
gpt4 key购买 nike

我需要创建一个没有构造函数参数的不完整对象。像这样的

Class A  {
private final int timeOut
public A(int timeout)
{
this.timeOut = timeout;
}
//...
}

我希望这个 Bean 由 Spring 管理,以便以后可以使用 Spring AOP。

<bean id="myBean" class="A" singleton="false">
</bean>

但是,我的 bean 需要超时才能作为动态值传递 - 有没有办法创建一个 Spring 托管 bean,并在构造函数中注入(inject)动态值?

最佳答案

BeanFactory 有一个 getBean(String name, Object... args) 方法,根据 javadoc , 允许您指定用于覆盖 bean 定义自己的参数的构造函数参数。因此,您可以在 beans 文件中放置一个默认值,然后在需要时指定“真实”运行时值,例如

<bean id="myBean" class="A" scope="prototype">
<constructor-arg value="0"/> <!-- dummy value -->
</bean>

然后:

getBean("myBean", myTimeoutValue);

我自己没有尝试过,但应该可以。

附: scope="prototype" 现在优于 singleton="false",后者是不推荐使用的语法 - 它更明确,但做同样的事情。

关于java - 具有动态构造函数值的spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com