我正在寻找一些流量变量,我需要存储像orderId,customerId和流中收到的其他响应这样的值,以便我可以在后面的流程中使用它们来编写业务逻辑。
.handle(outboundGateway("localhost:8080/order?orderId={orderId}")
.uriVariable("orderId", m -> m.getPayload())
.httpMethod(HttpMethod.GET)
.expectedResponseType(Order.class)
.handle(outboundGateway("localhost:8080/orderDetails?orderId={orderId}")
.uriVariable("orderId", m -> m.getPayload())
.httpMethod(HttpMethod.GET)
.expectedResponseType(OrderDetails.class)
.handle(outboundGateway("localhost:8080/customer?customerId={customerId}")
.uriVariable("customerId", m -> ((OrderDetails)m.getPayload()).getCustomerId())
.httpMethod(HttpMethod.GET)
.expectedResponseType(Customer.class)
.handle(outboundGateway("localhost:8080/customerAddress?addressId={addressId}")
.uriVariable("addressId", m -> ((Customer)m.getPayload()).getAdderssId)
.httpMethod(HttpMethod.GET)
.expectedResponseType(CustomerAddress.class)
.handle((p, h) -> somebusinesslogic)
答案 0 :(得分:1)
流程中没有像sa_sigaction
这样的抽象。嗯,基本上,在运行时根本没有流。 sa_handler
只是一个逻辑容器。更多的是将Spring Integration解决方案视为完全state
(除非我们讨论IntegrationFlow
)。
然而,有一个解决方案,您可以将任何额外的必需信息与其标题中的消息一起传输。这样您在stateless
之前使用aggregator
并根据.enrichHeaders()
的传播特性,请求标头正在复制到回复消息,因此,它们在下一个流程步骤中可用。< / p>