【发布时间】:2016-06-10 08:40:13
【问题描述】:
我已将 WireTap 配置添加到我的 Spring Integration Java DSL。
我查看了What is the equivalent of logging-channel-adapter in java DSL 的讨论,现在我的主要 Java 配置文件看起来像
@Configuration
@Import(LoggerConfiguration.class)
@EnableIntegration
public class ProcessorConfiguration {
@Autowired
private WireTap wireTap;
@Bean
public QueueChannel inputChannel() {
return MessageChannels.queue(500)
.interceptor(wireTap)
.get();
}
@Bean
public PublishSubscribeChannel outputChannel() {
return MessageChannels.publishSubscribe()
.interceptor(wireTap)
.get();
}
...
}
而LoggerConfiguration 是
@Configuration
public class LoggerConfiguration {
public static final LoggingHandler.Level INFO = LoggingHandler.Level.INFO;
@Bean
public WireTap wireTap() {
return new WireTap(loggerChannel());
}
@Bean
public IntegrationFlow loggerChain() {
return IntegrationFlows.from(loggerChannel())
.handle(loggerHandler())
.get();
}
@Bean
public MessageChannel loggerChannel() {
return MessageChannels.direct().get();
}
public MessageHandler loggerHandler() {
LoggingHandler loggingHandler = new LoggingHandler(INFO.name());
...
return loggingHandler;
}
}
代码的所有音调(!)仅用于在这些简单的行中达到我在 XML 配置中所拥有的内容
<int:channel id="inputChannel">
<int:queue capacity="500"/>
<int:interceptors>
<int:wire-tap channel="logger"/>
</int:interceptors>
</int:channel>
<int:publish-subscribe-channel id="outputChannel">
<int:interceptors>
<int:wire-tap channel="logger"/>
</int:interceptors>
</int:publish-subscribe-channel>
<int:logging-channel-adapter id="logger" log-full-message="true" level="INFO"/>
如何在 Java DSL 中配置wireTaps 不那么冗长和简单?
【问题讨论】:
标签: java spring spring-integration