【问题标题】:Configure RestTemplate for HttpRequestExecutingMessageHandler per message为每条消息配置 HttpRequestExecutingMessageHandler 的 RestTemplate
【发布时间】:2020-10-09 12:32:22
【问题描述】:

我正在开发一个 spring 集成项目,我正在使用 HttpRequestExecutingMessageHandler 类创建出站网关。我想执行使用单个网关使用承载身份验证令牌进行身份验证的不同 API。我配置了不同的 RestTemplate 来处理每种类型的消息。

我找不到如何使用这个类为每个消息配置 restTemplate。此类仅在构建时接受 restTemplate。 https://docs.spring.io/spring-integration/api/org/springframework/integration/http/outbound/HttpRequestExecutingMessageHandler.html

现在,我通过扩展的 AbstractHttpRequestExecutingMessageHandler 创建了自定义网关类,它是 HttpRequestExecutingMessageHandler 的父级,并从 HttpRequestExecutingMessageHandler 类复制了交换方法的内容。我将 restTemplate bean 名称作为消息头传递,并在交换方法开始时解析它。

有没有更好的方法?

【问题讨论】:

    标签: java spring spring-integration resttemplate


    【解决方案1】:

    “使用单一网关”已经是设计上的错误决定。

    您可能需要考虑为这些目的使用不同的HttpRequestExecutingMessageHandler。在您的逻辑中,您可以添加一个路由器来决定向哪个 HTTP 出站网关发送消息。

    在文档中查看更多信息:https://docs.spring.io/spring-integration/docs/5.3.2.RELEASE/reference/html/message-routing.html#messaging-routing-chapter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      相关资源
      最近更新 更多