gpt4 book ai didi

spring - Spring Integration 中的 @Router 与注释(请求/回复)

转载 作者:行者123 更新时间:2023-12-03 09:23:01 24 4
gpt4 key购买 nike

您能否提供在 Spring Integration 中路由消息的任何示例?按有效负载消息、 header 或类似以下内容进行过滤:

<int:payload-type-router input-channel="routingChannel">
<int:mapping type="java.lang.String" channel="channel1" />
<int:mapping type="java.lang.Integer" channel="channel2" />
</int:payload-type-router>

响应如何发挥作用?我的意思是,如果我发送:

channel -> 路由器 -> 变压器 -> 网关

很简单,但我正在寻找类似于此示例的内容:

<int:router input-channel="inChannel" expression="payload.paymentType">
<int:mapping value="CASH" channel="cashPaymentChannel"/>
<int:mapping value="CREDIT" channel="authorizePaymentChannel"/>
<int:mapping value="DEBIT" channel="authorizePaymentChannel"/>
</int:router>

当我的网关收到消息并将响应发送到回复 channel 时。我如何在路由器中得知正确的回复 channel 是什么?

最佳答案

@Router 方法仅返回消息将路由到的 channel 或 channel 名称。

@Router(inputChannel="routingChannel")
public String route(Object payload) {
if (payload instanceof String() {
return "channel1";
}
...
}

对于你的第二个问题,你需要展示更多的流程;什么是 channel 的“上游”?

您可以省略网关中的reply-channel(或省略其他类型的最终回复生成消费者的output-channel),并且回复将是发送到消息 reply-channel header 中的 channel ;启动请求/回复场景的框架组件(入站网关、消息传递网关、MessagingTemplate 中的 sendAndReceive 方法)会自动设置此 header ,因此您无需执行任何操作;它确实有效。

关于spring - Spring Integration 中的 @Router 与注释(请求/回复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27481337/

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