Есть ли компонент для регистрации сообщений в Spring Integration с использованием Java DSL?

Я использую Spring Integration для разработки своих сценариев интеграции. Когда мне нужно написать несколько журналов, чтобы предоставить некоторую информацию, я пишу так:

@Bean
IntegrationFlow blacklist(BlacklistService service) {
    return m -> m
            .wireTap(f -> f.handle(t -> log.info("Adding email source address in blacklist...")))
            .<MessageHandlingException, Blacklist>transform(p -> SourceBlacklist.of((Email) p.getFailedMessage().getHeaders().get(IntegrationConstants.MailSender.EMAIL)))
            .wireTap(f -> f.handle(t -> log.info("Email source address added to blacklist.")))
            .handle(service, "voidSave");
}

Я использую прослушивание телефонных разговоров с лямбда и дескриптор для регистрации моих сообщений. Есть ли лучший способ написать журнал с помощью Spring Integration с использованием Java DSL?

Благодарю.

1 ответ

Решение

Вы всегда можете просто включить регистрацию для org.springframework.integration категория.

С другой стороны, Spring Integration предлагает войти в интеграционный поток как adapter - <logging-channel-adapter>, Итак, вам нужно просто отправить сообщение на канал этого адаптера. С точки зрения конфигурации это выглядит так:

<wire-tap channel="logging" pattern="*"/>

<logging-channel-adapter id="logging"/>

То же самое мы можем настроить с помощью Java DSL, но мы должны полагаться на целевой класс - LoggingHandler:

@ServiceActivator(inputChannel = "logging")
@Bean
public loggingHandler() {
    return new LoggingHandler();
}

...

.transform()
.wireTap("logging")
.handle();

Хотя я могу понять вашу точку зрения, и мы действительно могли бы добавить что-то удобное в Framework напрямую

Не стесняйтесь поднимать проблему GH ( https://github.com/spring-projects/spring-integration-java-dsl/issues) по этому вопросу, и мы продолжаем обсуждать эту функцию там.

Но сейчас ваше решение не выглядит плохо, если честно.

ОБНОВИТЬ

Запрос на Framework по этому вопросу: https://github.com/spring-projects/spring-integration-java-dsl/issues/70

Другие вопросы по тегам