我想做這個(gè)<util:set id="datasources" value-type="java.lang.String"> <value>#{ '${processors}'.split(',') }</value></util:set>其中processors屬性是一個(gè)列表processors=ITEM_1,ITEM_2。然后我希望在另一個(gè) bean 中引用該 bean<util:map id="processors" key-type="java.lang.String" value-type="java.util.Set"> <entry key="processorTypes" value-ref="datasources"/></util:map>但它不起作用 - 它不會(huì)拆分值,最后我得到了processorTypes鍵中的所有值。但是當(dāng)我value直接這樣設(shè)置<entry key="processorTypes" value="#{ '${processors}'.split(',') }"/>它工作正常,并為我提供了一組鍵值。怎么了?
1 回答

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
我在這里看到了兩件事。首先,您將處理器作為 String 和 map id,這可能會(huì)讓 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>
添加回答
舉報(bào)
0/150
提交
取消