Учитывая, что у меня есть приложение, которое использует Spring Integration, и я определяю шлюз:
@Component
@MessagingGateway
public interface SmsGateway {
@Gateway(requestChannel = CHANNEL_SEND_SMS)
void sendSms(SendSmsRequest request);
}
public interface IntegrationChannels {
String CHANNEL_SEND_SMS = "channelSendSms";
}
Я также присоединяю IntegrationFlow
к CHANNEL_SEND_SMS
каналу:
@Bean
public IntegrationFlow sendSmsFlow() {
return IntegrationFlows.from(CHANNEL_SEND_SMS)
.transform(...)
.handle(...)
.get();
}
Всякий раз, когда я звоню sendSms
метод шлюза из бизнес-кода, sendSmsFlow
выполняется как ожидалось.
Когда я хочу подключить другой IntegrationFlow
к тому же каналу CHANNEL_SEND_SMS
, например,
@Bean
public IntegrationFlow differentFlow() {
return IntegrationFlows.from(CHANNEL_SEND_SMS)
.transform(...)
.handle(...)
.get();
}
затем differentFlow
не выполняется.
Почему он ведет себя таким образом?
Есть ли какое-либо решение, чтобы оно работало для обоих потоков?