我想做这个<util:set id="datasources" value-type="java.lang.String"> <value>#{ '${processors}'.split(',') }</value></util:set>其中processors属性是一个列表processors=ITEM_1,ITEM_2。然后我希望在另一个 bean 中引用该 bean<util:map id="processors" key-type="java.lang.String" value-type="java.util.Set"> <entry key="processorTypes" value-ref="datasources"/></util:map>但它不起作用 - 它不会拆分值,最后我得到了processorTypes键中的所有值。但是当我value直接这样设置<entry key="processorTypes" value="#{ '${processors}'.split(',') }"/>它工作正常,并为我提供了一组键值。怎么了?
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
我在这里看到了两件事。首先,您将处理器作为 String 和 map id,这可能会让 Spring 感到困惑。其次,您的 SpEL 定义不正确。这是建议的解决方案。
<util:map id="processors" key-type="java.lang.String" value-type="java.util.Set">
<entry key="processorTypes" value-ref="sourcesSet"/>
</util:map>
<bean id="sourcesSet" class="java.util.HashSet">
<constructor-arg value="#{list.split(',')}"/>
</bean>
<bean id="list" class="java.lang.String">
<constructor-arg value="ITEM_1,ITEM_2"/>
</bean>
添加回答
举报
0/150
提交
取消
