如何将UniqueID作为构造函数args传递给spring bean

arv*_*v_s 1 java uuid spring spring-mvc

我是春天的新手.我有一个bean类,其构造函数具有单个参数,uniqueId.

void Sample(String uniqueId){
      this.uniqueId = uniqueId;
}
Run Code Online (Sandbox Code Playgroud)

bean没有任何默认构造函数.我需要这个id用于某些商务逻辑.这个uniqueID需要是UUID.randomUUID().toString().

如何从bean配置xml传递给bean.

<bean id="Sample" class="com.scribe.dao.Sample">
     <constructor-arg  value="UUID.randomUUID().toString()"/>               
</bean>
Run Code Online (Sandbox Code Playgroud)

这不起作用.我还有什么其他选择?我在stackoverflow的另一篇文章中也看到过这样的例子.<constructor-arg value="uniqueId"/> 但同样的事情对我没有用.有任何简单的方法可以做到这一点.任何帮助赞赏.

Bon*_*ond 7

您需要使用此处所示的Spring Expression Language(SpEL)

bean定义应如下所示

<bean id="Sample" class="com.scribe.dao.Sample">
    <constructor-arg  value="#{ T(java.util.UUID).randomUUID().toString() }"/>               
</bean>
Run Code Online (Sandbox Code Playgroud)