如何在 spel 中填充 util:properties

How populate util:properties in spel

在使用 SpEL 的 Spring 配置 xml 中,我们可以用这种方式填充列表:

<util:list id="cities">
<bean class="com.habuma.spel.cities.City"
p:name="Chicago" p:state="IL" p:population="2853114"/>
<bean class="com.habuma.spel.cities.City"
p:name="Atlanta" p:state="GA" p:population="537958"/>
<bean class="com.habuma.spel.cities.City"
p:name="Dallas" p:state="TX" p:population="1279910"/>
<bean class="com.habuma.spel.cities.City"
p:name="Houston" p:state="TX" p:population="2242193"/>
<bean class="com.habuma.spel.cities.City"
p:name="Odessa" p:state="TX" p:population="90943"/>
<bean class="com.habuma.spel.cities.City"
p:name="El Paso" p:state="TX" p:population="613190"/>
<bean class="com.habuma.spel.cities.City"
p:name="Jal" p:state="NM" p:population="1996"/>
<bean class="com.habuma.spel.cities.City"
p:name="Las Cruces" p:state="NM" p:population="91865"/>
</util:list>

我们如何通过字符串填充 util:properties?

<util:properties id="some">

....

</util:properties>

您可以使用 props 元素,如下所示:

<props>
    <prop key="key1">value1</prop>
    <prop key="key2">value2</prop>
    ...
</props>

但这不是 SpEL,正如@M。 Deinum 已经指出了。

编辑:在答案中加入一些评论:

<util:properties> 从 "location" 属性指定的资源位置加载 Properties 实例,类似于 <util:properties id="some" location="myfile.properties" />。以下 post 显示如何从系统 属性 读取位置:how to read System environment variable in Spring applicationContext