2013-12-02 4 views
1

Могу ли я использовать маршрутизатор в цепочке? Практически получатель маршрутизатора должен быть цепочкой. Это должно быть примерно такЦепочка как получатель-получатель-маршрутизатор

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

Я действительно не понимаю, почему это опущено ... –

ответ

2

No; получатель в этом контексте является каналом, а не конечной точкой.

Вам необходимо объявить (внутреннюю) цепь как элемент верхнего уровня с помощью input-channel, и получатель будет ссылаться на этот входной канал.

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

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

Конечно, если RLR является единственным элементом в первой цепи, как в этом примере, это ничего не стоит, и вы могли бы также объявить его как элемент верхнего уровня.

+0

И у меня нет чего-то похожего на RLR для конечных точек? –

+2

Нет; конечные точки не «знают» друг о друге, они слабо связаны с каналами. Это позволяет гораздо большую гибкость - например, изменение типов каналов, добавление перехватчиков и т. Д. В качестве удобства в приведенном выше фрагменте нет необходимости явно объявлять канал 'foo', если вы не хотите, чтобы у него было другое поведение по умолчанию (' DirectChannel '). –

Смежные вопросы