当前位置: 首页 > 知识库问答 >
问题:

如何为http入站网关(DSL样式)设置ID?

印飞捷
2023-03-14

在我的Spring Boot应用程序中,我有以下入站网关(Java DSL):

@Bean
    public IntegrationFlow upperCaseFlow() {
        return IntegrationFlows
                .from(
                        Http.inboundGateway("/conversions/upperCase")
                        .requestMapping(r -> r.methods(HttpMethod.POST).consumes("text/plain"))
                        .requestPayloadType(String.class)
                        .id("upperCaseGateway")
                )
                .<String>handle((p, h) -> p.toUpperCase())
                .get();
    }

id(“upperCaseGateway”),我假设,是将“id”设置到网关的部分。

另一方面,我正在尝试以稍微不同的DSL样式实现另一个HTTP入站网关,如下所示:

@Bean
    public IntegrationFlow httpGetFlow() {
        return IntegrationFlows.from(httpGetGate()).channel("httpGetChannel").handle("personEndpoint", "get").get();
    }

@Bean
    public MessagingGatewaySupport httpGetGate() {
        HttpRequestHandlingMessagingGateway handler = new HttpRequestHandlingMessagingGateway();
        handler.setRequestMapping(createMapping(new HttpMethod[]{HttpMethod.GET}, "/persons/{personId}"));
        handler.setPayloadExpression(parser().parseExpression("#pathVariables.personId"));
        handler.setHeaderMapper(headerMapper());

        return handler;
    }

@Bean
    public HeaderMapper<HttpHeaders> headerMapper() {
        return new DefaultHttpHeaderMapper();
    }

我的问题是:在创建http入站网关的第二种风格中,如何为网关设置一个id,其值为“getPersonsGateway”?我看到在第1种风格中,通过一个简单的.id(“upperCaseGateway”)调用就可以实现这一点。

任何指导都将不胜感激!

真的,巴拉斯

共有1个答案

南门飞扬
2023-03-14

id只是一个bean名称;对于复合组件(消费者),它是消费者endpointbean名称,消息处理程序获取

对于简单的消息驱动组件,例如http入站适配器,它只是bean名称。所以给你的豆子取个恰当的名字。

要么是

@Bean("upperCaseGateway")
public MessagingGatewaySupport httpGetGate() {

或者,简单地说

@Bean
public MessagingGatewaySupport upperCaseGateway() {

 类似资料:
  • 我尝试使用以下代码,得到了回应:状态:405方法不允许。这是我的Http请求:http://localhost:8090/services/test?name=test.代码或http请求有什么问题?

  • 我正在尝试将spring集成配置为向队列发送消息,然后接收消息,即非常简单的事情: 我认为解耦所必需的是在流程的两端都有一个消息网关。因此,我的第一次尝试(有效)如下所示: 其中MessageReceiverHandler()是扩展AbstractMessageHandler的bean。 所以上面我们有一个用于出站消息的消息网关。我假设我们也应该有一个用于入站消息的网关,允许我们将传入消息处理与应

  • 我不熟悉Spring集成。我正在尝试使用http入站网关构建一个简单的应用程序。下面是我得到的运行时异常。 下面是代码文件。 波约 服务 } 服务激活器 } 存储库 请帮助我,我正在试图找到异常发生的原因,但无法解决。提前谢谢。 集成文件。

  • 使用指南 - 账户管理 - 站点管理 - 如何设置汇总网站 汇总网站的概念 您可以通过汇总网站的设置,将多个站点的数据合并,以便查看和分析这些站点的整体累加数据。 ##如何设置汇总网站 在“管理”->“网站列表”中可以添加汇总网站。 如果之前没有添加汇总网站,在如下图中的位置点击添加汇总网站。 如果已经设置过汇总网站,在如下图中的位置点击添加汇总网站。 数据查看 完成汇总网站的设置后,汇总网站会出

  • proxy.conf.js在开发模式下按预期工作。 我在package.json文件中有这些文件用于启动和构建。 在我运行“NPM run Build”并使用结果文件在IIS8上托管网站后,需要使用代理设置的页面就不工作了。 例如,我的请求https://localhost/web/api/webclients/authentication应该转到https://10.109.102.109/we

  • 我想通过超文本传输协议使用multipart/form-data inboud网关。第一部分是json对象,我想按内容类型将其序列化为对象:应用程序/json。第二部分是pdf文件。是否可以简单地序列化?我需要我的自定义消息转换器吗? 原始请求: HTTP Inboud网关 编辑: 我已经在Spring启动2.0.3上尝试过了。释放。它似乎不适用于。在有效负载中,我总是看到空的LinkedMult