首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@网关(payloadExpression=“..”)vs @Payload("...")

@网关(payloadExpression=“..”)vs @Payload("...")
EN

Stack Overflow用户
提问于 2021-10-19 14:23:05
回答 1查看 48关注 0票数 1

Spring integration documentation解释说,当从没有参数的接口方法声明网关时,必须指定有效负载表达式,以便框架知道应该在生成的消息上设置什么有效负载。但是,如果我执行以下操作:

代码语言:javascript
复制
<int:gateway id="myGateway"
  service-interface="com.example.MyGateway"
  default-request-channel="requestChannel"
  default-reply-channel="replyChannel" />

对于以下接口:

代码语言:javascript
复制
package com.example;
public interface MyGateway {

    @Gateway(payloadExpression = "''")
    String doSomething();
}

这会导致一个错误:“不支持接收,因为没有配置可轮询的应答通道”。

取而代之的是:

代码语言:javascript
复制
public interface MyGateway {

    @Payload("''")
    String doSomething();
}

实际上,上面的文档指定了在method元素上使用@Payloadpayload-expression属性指定有效负载。但是,作为一名用户,我发现通过@Gateway注释设置有效负载表达式在这里不起作用,特别是因为相同的注释在其他上下文中也可以使用,这让我非常惊讶。

这是故意的还是疏忽的?

EN

回答 1

Stack Overflow用户

发布于 2021-10-19 14:46:18

目前还不清楚为什么文档令人困惑,但请随时提出改进建议。

@Gateway注释用于在使用基于注释的配置时进行配置

https://docs.spring.io/spring-integration/docs/5.3.2.RELEASE/reference/html/messaging-endpoints.html#gateway-configuration-annotations

文档清楚地说明了在使用XML配置时使用@Payloadpayload-expression

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69632638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档