为每条消息配置 HttpRequestExecutingMessageHandler 的 RestTemplate
Configure RestTemplate for HttpRequestExecutingMessageHandler per message
我正在开发一个 spring 集成项目,我正在使用 HttpRequestExecutingMessageHandler class 创建出站网关。我想执行不同的 API,这些 API 使用单个网关使用不记名身份验证令牌进行身份验证。我配置了不同的 RestTemplate 来处理每种类型的消息。
我找不到如何使用此 class 配置每个消息基础的 restTemplate。这个class只在构造时接受restTemplate。
https://docs.spring.io/spring-integration/api/org/springframework/integration/http/outbound/HttpRequestExecutingMessageHandler.html
目前,我已经通过扩展 AbstractHttpRequestExecutingMessageHandler 创建了自定义网关 class,它是 HttpRequestExecutingMessageHandler 的 parent,并从 HttpRequestExecutingMessageHandler 复制了交换方法的内容 class。我将 restTemplate bean 名称作为消息 header 传递并在交换方法开始时解析它。
有没有更好的方法?
“使用单一网关”已经是一个错误的设计决定。
为了这些目的,您可能需要考虑使用不同的 HttpRequestExecutingMessageHandler
。在您的逻辑中,您可以添加一个路由器来决定将消息发送到哪个 HTTP 出站网关。
我正在开发一个 spring 集成项目,我正在使用 HttpRequestExecutingMessageHandler class 创建出站网关。我想执行不同的 API,这些 API 使用单个网关使用不记名身份验证令牌进行身份验证。我配置了不同的 RestTemplate 来处理每种类型的消息。
我找不到如何使用此 class 配置每个消息基础的 restTemplate。这个class只在构造时接受restTemplate。 https://docs.spring.io/spring-integration/api/org/springframework/integration/http/outbound/HttpRequestExecutingMessageHandler.html
目前,我已经通过扩展 AbstractHttpRequestExecutingMessageHandler 创建了自定义网关 class,它是 HttpRequestExecutingMessageHandler 的 parent,并从 HttpRequestExecutingMessageHandler 复制了交换方法的内容 class。我将 restTemplate bean 名称作为消息 header 传递并在交换方法开始时解析它。
有没有更好的方法?
“使用单一网关”已经是一个错误的设计决定。
为了这些目的,您可能需要考虑使用不同的 HttpRequestExecutingMessageHandler
。在您的逻辑中,您可以添加一个路由器来决定将消息发送到哪个 HTTP 出站网关。