Последним элементом в коде для следующего потока DSL является Service Activator (метод .handle
).
Есть ли прямой выходной прямой канал, на который я могу подписаться здесь? Если я правильно понимаю, выходной канал должен присутствовать
Я знаю, что могу добавить .channel("name")
в конце, но вопрос в том, что если это не написано явно.
Вот код:
@SpringBootApplication
@IntegrationComponentScan
public class QueueChannelResearch {
@Bean
public IntegrationFlow lambdaFlow() {
return f -> f.channel(c -> c.queue(50))
.handle(System.out::println);
}
public static void main(String[] args) {
ConfigurableApplicationContext ctx = SpringApplication.run(QueueChannelResearch.class, args);
MessageChannel inputChannel = ctx.getBean("lambdaFlow.input", MessageChannel.class);
for (int i = 0; i < 1000; i++) {
inputChannel.send(MessageBuilder.withPayload("w" + i)
.build());
}
ctx.close();
}
Другой вопрос касается QueueChannel
. Программа зависает, если комментарий handle()
, и завершает работу, если его раскомментируют. Означает ли это, что handle()
добавляет перед ним Poller по умолчанию?
return f -> f.channel(c -> c.queue(50));
// .handle(System.out::println);