如何在单独的spring集成应用程序中实现JMS入站和出站配置?

时间:2018-06-22 05:38:44

标签: java spring spring-integration spring-jms spring-integration-dsl

我的用例是在我们的项目中实施通知服务。

我们已经将spring与jms结合使用,并且将其与rest服务一起使用可以正常工作。能够使用JMSTemplate的convertAndSend()和convertAndReceive()函数从一个应用程序发送消息到队列,并从另一个应用程序的队列接收消息。

现在,我想使用Spring Integration的java dsl方法做到这一点。我们通过在具有ActiveMQ的单个应用程序中使用Jms的inboundGateway()和outboundGateway()进行了示例。

如何在不同的应用程序中使用spring Integration的java dsl仅用于发送/接收消息?

这是我的代码,

@Bean
public IntegrationFlow jmsInboundFlow() {
    return IntegrationFlows
            .from(Jms.inboundGateway(this.connectionFactory)
                    .destination("pan.outbound"))
            .transform((String s) -> s.toUpperCase())
            .channel("in-bound-request-channel")
            .get();
}

@Bean
public IntegrationFlow jmsOutboundGatewayFlow() {
    return IntegrationFlows.from("out-bound-request-channel")
            .handle(Jms.outboundGateway(this.connectionFactory)
                        .requestDestination("pan.outbound"))
            .log()
            .bridge()
            .get();
}

@MessagingGateway
interface EchoGateway {

    @Gateway(requestChannel = "out-bound-request-channel")
    String send(String message);

}

1 个答案:

答案 0 :(得分:1)

您只需要拆分配置-一个应用程序中的JMS入站适配器,第二个应用程序中的JMS出站。 方式与一个应用程序完全相同吗? (也许我错过了一些信息?)