通过注释进行Spring Integration Control总线配置

时间:2015-01-08 20:47:04

标签: java design-patterns spring-integration

只是一个简单的问题: 有没有办法通过注释配置Spring Integration控制总线(没有任何xml)

<control-bus input-channel="operationChannel"/>

2 个答案:

答案 0 :(得分:7)

Spring Integration Java DSL提供了有关此事的内容:

@Bean
public IntegrationFlow controlBusFlow() {
     return IntegrationFlows.from("operationChannel").controlBus().get();
}

答案 1 :(得分:6)

@Bean
@ServiceActivator(inputChannel = "controlBusChannel")
public ExpressionControlBusFactoryBean controlBus() throws Exception {
    ExpressionControlBusFactoryBean controlBus = new ExpressionControlBusFactoryBean();
    return controlBus;
}

请注意,注释上的任何outputChannel都将被忽略;它是在公交车上定义的。

通常省略控制总线的输出通道,其中包含正常请求/回复操作的结果,例如@someBean.isRunning()(例如someBean实现Lifecycle)返回{{1}标题(例如,到replyChannel操作或消息传递网关)。

如果需要将控制总线操作结果发送到其他地方,请将输出通道添加到工厂bean。

任何MessagingTemplate.sendAndReceive() MessageHandler(或创建一个的工厂bean)现在都可以使用@Bean进行注释。请参阅the documentation