收件人列表路由器 Spring 集成
recipient-list-router Spring integration
我是 spring 集成的新手。
在我的 spring 集成配置中,我有:
<int:chain input-channel="channel1_2" output-channel="channel1_3">
<int:service-activator>
<bean class="com.csv.CSVEntreprise"/>
</int:service-activator>
</int:chain>
<int:channel id="channel1_3"/>
<int:recipient-list-router id="id-entreprise" input-channel="channel1_3">
<int:recipient channel="channel1_3TRUE" />
<int:recipient channel="channel1_3FALSE"/>
</int:recipient-list-router>
<int:channel id="channel1_3TRUE"/>
<int:channel id="channel1_3FALSE"/>
在 class CSVEntreprise 中,我使用布尔值 return 定义了方法,我希望在 return 为真时使用通道 channel1_3TRUE,在 return 时使用false 使用频道 channel1_3FALSE ?
您可能要考虑使用 header 值路由器 (http://docs.spring.io/spring-integration/reference/html/messaging-routing-chapter.html)。
您使用 CSVEnterprise bean 在 MessageHeaders 中设置布尔值。
您的 @ServiceActivator
应该设置 header 的值:
return MessageBuilder.withPayload(message)
.setHeader("MY_HEADER", Boolean.FALSE).copyHeadersIfAbsent(headers).build();
然后,使用 header 值路由器来确定将订单发送到哪个渠道。
<int:header-value-router input-channel="channel1_3" header-name="MY_HEADER" id="headerValueRouter">
<int:mapping value="true" channel="channel1_3TRUE"/>
<int:mapping value="false" channel="channel1_3FALSE" />
</int:header-value-router>
我是 spring 集成的新手。 在我的 spring 集成配置中,我有:
<int:chain input-channel="channel1_2" output-channel="channel1_3">
<int:service-activator>
<bean class="com.csv.CSVEntreprise"/>
</int:service-activator>
</int:chain>
<int:channel id="channel1_3"/>
<int:recipient-list-router id="id-entreprise" input-channel="channel1_3">
<int:recipient channel="channel1_3TRUE" />
<int:recipient channel="channel1_3FALSE"/>
</int:recipient-list-router>
<int:channel id="channel1_3TRUE"/>
<int:channel id="channel1_3FALSE"/>
在 class CSVEntreprise 中,我使用布尔值 return 定义了方法,我希望在 return 为真时使用通道 channel1_3TRUE,在 return 时使用false 使用频道 channel1_3FALSE ?
您可能要考虑使用 header 值路由器 (http://docs.spring.io/spring-integration/reference/html/messaging-routing-chapter.html)。
您使用 CSVEnterprise bean 在 MessageHeaders 中设置布尔值。
您的 @ServiceActivator
应该设置 header 的值:
return MessageBuilder.withPayload(message)
.setHeader("MY_HEADER", Boolean.FALSE).copyHeadersIfAbsent(headers).build();
然后,使用 header 值路由器来确定将订单发送到哪个渠道。
<int:header-value-router input-channel="channel1_3" header-name="MY_HEADER" id="headerValueRouter">
<int:mapping value="true" channel="channel1_3TRUE"/>
<int:mapping value="false" channel="channel1_3FALSE" />
</int:header-value-router>