【发布时间】:2016-05-07 00:15:04
【问题描述】:
我正在尝试配置 spring-integration 以将消息发送到队列然后接收它,即非常简单的事情:
myApp -> outbound message -> jmsQueue -> inbound message -> myApp
我认为解耦的必要条件是在流程的任一端都有一个消息网关。因此,我的第一次尝试(有效)如下所示:
@MessagingGateway(name = "outboundGateway")
public interface OutboundGateway {
@Gateway(requestChannel = OUTBOUND_CHANNEL)
void sentMyObject(final MyObject myObject);
}
@Bean
public IntegrationFlow outboundFlow() {
return IntegrationFlows
.from(outboundChannel())
.handle(Jms.outboundAdapter(connectionFactory).destination(myQueue))
.get();
}
@Bean
public IntegrationFlow inboundFlow() {
return IntegrationFlows.from(Jms.messageDriverChannelAdapter(connectionFactory).destination(myQueue))
.channel(inboundChannel())
.handle(messageReceiverHandler())
.get();
}
其中 messageReceiverHandler() 是一个扩展 AbstractMessageHandler 的 bean。
所以上面我们有一个用于出站消息的消息网关。我的假设是我们也应该有一个用于入站消息,允许我们将传入消息处理与应用程序代码分离。相反,我们只是有一个扩展 AbstractMessageHandler 的 bean,而我希望有一些网关配置。正确的用法是什么?
非常感谢您。
【问题讨论】:
标签: java spring jms spring-integration dsl