1
我是Spring Integration DSL的新手,我遇到了一个问题。我需要在子流中的特定点或流中的任何其他点使用Object的流开始,就像在整个流中可重用的Session变量。以下是我转换udp请求的示例,将它转换为发送到api函数的http请求,并且接收到的响应不包含进行udp响应所需的数据。所以不知何故,我需要udp请求中的数据来制作udp响应。我一直在考虑拆分器,但我不认为这是一个解决方案,甚至不能将当前的Integratin流程扩展到我的需求。我知道这个系统不是松散耦合的,但它必须是一种方法。Spring集成Java DSL - 流中的可重用对象
@Bean
public IntegrationFlow udpHttpFlow() {
return IntegrationFlows.from(udpInboundChannel())
.transform(udpRequestTransformer())
/* udp request object to use */
.<UdpRequest, Boolean>route(SessionObject::sessionExists, mapping -> mapping
.subFlowMapping(false, sf -> sf
.transform(httpRequestTransformer())
.handle(httpOutboundGateway())
.transform(httpResponseTransformer()))
/*use udp object here .handle(...) */
.subFlowMapping(true, sf -> sf
/* .handle(...) */
.transform(udpResponseTransformer())
.handle(udpOutboundChannel())
.get();
}