gpt4 book ai didi

java - 在 `value` 标签内执行表达式

转载 作者:行者123 更新时间:2023-12-02 10:16:23 24 4
gpt4 key购买 nike

我想做这个

<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 键内的所有值。

但是当我像这样直接设置

<entry key="processorTypes" value="#{ '${processors}'.split(',') }"/>

它工作正常,并为我提供了 key 的一组值。

出了什么问题?

最佳答案

我在这里看到了两件事。首先,你有 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>

关于java - 在 `value` 标签内执行表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54648816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com