Java 链作为收件人列表路由器的收件人

Java 链作为收件人列表路由器的收件人,java,spring,spring-integration,Java,Spring,Spring Integration,我可以使用链中的路由器吗?实际上,路由器的接收者应该是一个链。 应该是这样的 <int:chain> <int:recipient-list-router> <int:recipient> <int:chain> ... </int:chain> </int:recipient> ...

我可以使用链中的路由器吗?实际上,路由器的接收者应该是一个链。 应该是这样的

<int:chain>
    <int:recipient-list-router>
        <int:recipient>
            <int:chain>
                ...
            </int:chain>
        </int:recipient>
       ...
    </int:recipient-list-router>
</int:chain>

...
...

否;该上下文中的收件人是通道而不是端点

您必须将(内部)链声明为具有
输入通道的顶级元素,并且接收者将引用该输入通道

<int:chain ...>
    <int:recipient-list-router>
        <int:recipient channel="foo" />
        ...
    </int:recipient-list-router>
</int:chain>

<int:chain input-channel="foo">
    ...
</int:chain>

...
...

当然,如果
RLR
是第一个链中的唯一元素,如本例中所示,那么它毫无价值,您不妨将其声明为顶级元素。

No;端点彼此并不“了解”,它们是使用通道松散耦合的。这允许更大的灵活性-如更改频道类型、添加拦截器等。为了方便起见,在上面的代码段中,不必显式声明频道
foo
,除非您希望它具有与默认值不同的行为(
DirectChannel
)。我真的不明白为什么会被否决。。。