Spring integration documentation解释说,当从没有参数的接口方法声明网关时,必须指定有效负载表达式,以便框架知道应该在生成的消息上设置什么有效负载。但是,如果我执行以下操作:
<int:gateway id="myGateway"
service-interface="com.example.MyGateway"
default-request-channel="requestChannel"
default-reply-channel="replyChannel" />对于以下接口:
package com.example;
public interface MyGateway {
@Gateway(payloadExpression = "''")
String doSomething();
}这会导致一个错误:“不支持接收,因为没有配置可轮询的应答通道”。
取而代之的是:
public interface MyGateway {
@Payload("''")
String doSomething();
}实际上,上面的文档指定了在method元素上使用@Payload或payload-expression属性指定有效负载。但是,作为一名用户,我发现通过@Gateway注释设置有效负载表达式在这里不起作用,特别是因为相同的注释在其他上下文中也可以使用,这让我非常惊讶。
这是故意的还是疏忽的?
发布于 2021-10-19 14:46:18
目前还不清楚为什么文档令人困惑,但请随时提出改进建议。
@Gateway注释用于在使用基于注释的配置时进行配置
文档清楚地说明了在使用XML配置时使用@Payload或payload-expression。
https://stackoverflow.com/questions/69632638
复制相似问题