如何使用 ActiveMQ 队列与 Spring 集成

How to use ActiveMQ queue with Spring Integration

我有一个本地 ActiveMQ 服务器,我想使用 Spring 集成从名为 "test" 的队列中轮询消息。

轮询消息后,我想将其发送到另一个通道,该通道会将其写入文件系统中的文本文件。

我看过一些使用

的例子

<int-jms:message-driven-channel-adapter id="jmsIn" destination="inQueue" channel="exampleChannel"/>

我想使用 Java 注释创建此 JMS "poller"。我找不到任何关于如何将上述 XML 内容替换为注释的参考资料。 谁能提供一个工作片段,其中包含连接工厂配置和 jms:message-driven-channel-adapter 完成注释?

P.S。这是具有 XML 配置

的参考

https://examples.javacodegeeks.com/enterprise-java/spring/integration/spring-boot-integration-activemq-example/

提前致谢!

嗯,为了正确的 Java 和注释配置,您需要考虑使用 Spring Integration Java DSL

下面是 <int-jms:message-driven-channel-adapter> 等效项的一些示例:

    @Bean
    public IntegrationFlow jmsMessageDrivenRedeliveryFlow() {
        return IntegrationFlows
                .from(Jms.messageDrivenChannelAdapter(jmsConnectionFactory())
                        .errorChannel(IntegrationContextUtils.ERROR_CHANNEL_BEAN_NAME)
                        .destination("jmsMessageDrivenRedelivery")
                        .configureListenerContainer(c -> c
                                .transactionManager(mock(PlatformTransactionManager.class))
                                .id("jmsMessageDrivenRedeliveryFlowContainer")))
                .<String, String>transform(p -> {
                    throw new RuntimeException("intentional");
                })
                .get();
    }

要写入文件,您需要使用 Files.outboundAdapter()https://docs.spring.io/spring-integration/docs/5.0.6.RELEASE/reference/html/files.html#_configuring_with_the_java_dsl_9

我同意我们缺少 JMS 部分的类似文档,所以请随时就此事提出 JIRA。