Я тестирую поведение метода .channel () и наблюдаю вещи, которые мне не понятны.
@Bean
public IntegrationFlow flow() {
return IntegrationFlows.from("my-gateway")
.channel("first-channel")
.channel("second-channel")
.get();
}
Если я помещаю операторы печати в «первый канал», они не печатаются. Но некоторые из бизнес-логик c все еще, кажется, происходят. Изменить: Добавлен код для активаторов услуг
@ServiceActivator(inputChannel = "first-channel")
public Message testFlow(Message message) {
System.out.println("Entered First Channel " + "\n" + "Message Header: " + message.getHeaders() + "\n" + "Message Payload" + "\n" + message.getPayload());
return message;
}
@ServiceActivator(inputChannel = "second-channel")
public Message testFlow(Message message) {
System.out.println("Entered Second Channel " + "\n" + "Message Header: " + message.getHeaders() + "\n" + "Message Payload" + "\n" + message.getPayload());
return message;
}
application.properties:
logging.level.root=TRACE
Разрешено ли мне передать сообщение через несколько каналов в одном java dsl IntegrationFlow? Или все IntegrationFlow ограничены одним каналом / ServiceActivator каждый?
Редактировать: в журналах появляется только оператор печати second . Почему это?