2016-03-09 2 views
2

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

@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 с использованием Java DSL?

Спасибо.

ответ

2

Вы всегда можете включить регистрацию для категории org.springframework.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(); 

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

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

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

UPDATE

Запрос на Рамки по данному вопросу: https://github.com/spring-projects/spring-integration-java-dsl/issues/70

Смежные вопросы