DSL интеграции Spring - CharacterStreamWritingMessageHandler

Я пишу образец кода для примера basic-amqp (https://github.com/spring-projects/spring-integration-samples/blob/master/basic/amqp/src/main/resources/META-INF/spring/integration/spring-integration-context.xml) в DSL

@Bean
public IntegrationFlow receiveGreetingFromGreetingQueueToConsole(ConnectionFactory connectionFactory) {

    return IntegrationFlows.from(Amqp.inboundAdapter(connectionFactory, "greeting.queue"))
            .log()
            .<String,String>transform(m -> "Received " + m)
            .handle(CharacterStreamWritingMessageHandler.stdout())
            .get();

}

Как применить логическое значение setShouldAppendNewLine к

.handle(CharacterStreamWritingMessageHandler.stdout())

Я не хочу объявлять обработчик как bean-компонент только для установки этого свойства. Wish stdout принял для этого параметр.


person Nikhil    schedule 16.07.2020    source источник


Ответы (1)


Это не обязательно должен быть боб ...

@Bean
public IntegrationFlow receiveGreetingFromGreetingQueueToConsole(ConnectionFactory connectionFactory) {

    CharacterStreamWritingMessageHandler stdout = CharacterStreamWritingMessageHandler.stdout();
    stdout.setShouldAppendNewLine(true);
    return IntegrationFlows.from(Amqp.inboundAdapter(connectionFactory, "greeting.queue"))
            .log()
            .<String,String>transform(m -> "Received " + m)
            .handle(stdout)
            .get();

}

Однако я согласен с тем, что для DSL было бы неплохо использовать свободный API; пожалуйста, откройте вопрос на GitHub.

person Gary Russell    schedule 16.07.2020
comment
Спасибо ! Проблема создана - github.com/spring-projects/spring-integration/issues/3343 - person Nikhil; 16.07.2020