微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有动态构造函数值的Spring bean

如何解决具有动态构造函数值的Spring bean

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

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

接着:

getBean("myBean", myTimeoutValue);

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

PS scope="prototype"现在比优先使用singleton="false",后者已弃用的语法-更加明确,但功能相同。

解决方法

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

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?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。