我想这样做
docker node inspect self
其中<util:set id="datasources" value-type="java.lang.String">
<value>#{ '${processors}'.split(',') }</value>
</util:set>
属性是列表processors
。然后我希望在另一个bean中引用那个bean
processors=ITEM_1,ITEM_2
但是它不起作用-它不会拆分值,最后我得到了<util:map id="processors" key-type="java.lang.String" value-type="java.util.Set">
<entry key="processorTypes" value-ref="datasources"/>
</util:map>
键内的所有值。
但是当我像这样直接设置processorTypes
value
它工作正常,并向我提供了该键的一组值。
怎么了?
答案 0 :(得分:1)
我在这里看到的两件事。首先,您将处理器作为字符串和映射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>