Я новичок в Spring Integration DSL, и у меня возникла проблема. Мне нужно использовать Object с начала потока в определенной точке в subFlow или в любой другой точке потока, что-то вроде переменной Session, которую можно повторно использовать во всем потоке. Вот пример, в котором я преобразовываю запрос udp, преобразую его в запрос http, который отправляется в функцию api, а полученный ответ не содержит данных, необходимых для ответа udp. Итак, мне каким-то образом нужны данные, которые находятся в запросе udp, чтобы сделать ответ udp. Я думал о сплиттере, но не думаю, что это решение или даже расширение текущего потока Integratin для моих нужд. Я знаю, что система не является слабосвязанной, но это должен быть способ сделать это.
@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();
}