gpt4 book ai didi

java - 在同一路由器上使用多个 channel

转载 作者:行者123 更新时间:2023-12-02 10:19:31 38 4
gpt4 key购买 nike

我有一个带有多个 channel 的 Spring Integration 项目。我希望一些 channel 输出将进入同一个路由器。

例如,对于 channel 1,我有:

<int:chain input-channel="channel-1" output-channel="channel-1-out>
<int:service-activator ref="serviceA" method="doService" />
<int:service-activator ref="serviceB" method="doService" />
<int:service-activator ref="serviceC" method="doService" />
</int:chain>

<int:chain input-channel="channel-1-out">
<int:router>
<bean class="com.foo.MyClass" />
</int:router>
</int:chain>

对于 channel 2,我必须复制路由器类:

<int:chain input-channel="channel-2" output-channel="channel-2-out>
<int:service-activator ref="serviceD" method="doService" />
<int:service-activator ref="serviceE" method="doService" />
<int:service-activator ref="serviceF" method="doService" />
</int:chain>

<int:chain input-channel="channel-2-out">
<int:router>
<bean class="com.foo.MyClass" />
</int:router>
</int:chain>

问题在于,对于 10 个不同的 channel ,我必须编写 10 个不同的路由器,所有路由器都指向相同的路由器类。对我来说,这似乎有点烦人和多余,而且它使 ApplicationContext 变得困惑。

有没有一种方法可以简单地将所需的输出添加到同一路由器?类似的东西

<int:chain input-channel=
"channel-1-out" +
"channel-2-out" +
"channel-3-out"....>
<int:router>
<bean class="com.foo.MyClass" />
</int:router>
</int:chain>

编辑:

简单的解决方案,将每个链的输出 channel 设置为路由器的输入 channel 。

<int:chain input-channel="channel-1" output-channel="router>
<int:service-activator ref="serviceA" method="doService" />
<int:service-activator ref="serviceB" method="doService" />
<int:service-activator ref="serviceC" method="doService" />
</int:chain>

<int:chain input-channel="channel-2" output-channel="router>
<int:service-activator ref="serviceD" method="doService" />
<int:service-activator ref="serviceE" method="doService" />
<int:service-activator ref="serviceF" method="doService" />
</int:chain>

<int:chain input-channel="router">
<int:router>
<bean class="com.foo.MyClass" />
</int:router>
</int:chain>

无需声明多个路由器

最佳答案

目前没有;但我们确实有一个开放的 enhancement request .

也就是说,为什么需要声明多个路由器?只需声明一个并将每个链的输出 channel 设置为其输入 channel 即可。

关于java - 在同一路由器上使用多个 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54441550/

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