我想做这个
<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(',') }"/>它工作得很好,并为我提供了键的值集。
怎么啦?
发布于 2019-02-12 20:00:47
我在这里看到了两件事。首先,你将处理器作为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>https://stackoverflow.com/questions/54648816
复制相似问题