我可以直接从SpEL表达式创建bean吗?

时间:2016-02-28 17:37:34

标签: java xml spring spring-el spring-bean

我有一个生成SpEL列表的SpEL表达式。 (结果类型实际上是一个Java数组,但没有任何意义上的狡辩。)

我想"推广"我的SpEL表达式的结果是我的Spring XML bean配置文件中的bean。执行此操作的一种方法是构造一个ArrayList bean并将数组提供为install.ps1 -channel beta,如下所示:

constructor-arg

这对我来说似乎有点麻烦。是否有一个单行代码执行相同的操作并允许我将数组直接放入bean中而不必将其包装在新构造的<bean name="myList" class="java.util.ArrayList"> <constructor-arg value="#{ my SpEL expression here }"/> </bean> bean中?

如果没有,是否有更简洁或更清晰的语法来做我现在正在做的事情?

1 个答案:

答案 0 :(得分:1)

嗯,我只对java.lang.String的bean定义提出了同样的问题:

<bean id="myString" class="java.lang.String">
    <constructor-arg value="foo"/>
</bean>

我已经习惯了很久了。如此简单地试图破解并且不做真正的工作: - )。

如何尝试:

<util:list id="myList">
    <value>#{ my SpEL expression here }</value>
</util:list>

从另一方面,您可以转到JavaConfig并从这个XML拐杖中解脱出来。您应该理解XML定义有点受限于XML语言边界并且原谅他一些不便。