Spring integration 如果我没有';我不想用dsl来编写在jms和spring集成通道之间建立连接的代码,它是如何做到的

Spring integration 如果我没有';我不想用dsl来编写在jms和spring集成通道之间建立连接的代码,它是如何做到的,spring-integration,spring-batch,Spring Integration,Spring Batch,在这个链接中,作者使用java域特定语言来构建从spring集成通道到activeMQ的连接。如果我不想使用JavaDSL,我只想使用通用的java方法。我该怎么办 @Bean public IntegrationFlow outboundFlow(ActiveMQConnectionFactory connectionFactory) { return IntegrationFlows .from(requests()) .handle(

在这个链接中,作者使用java域特定语言来构建从spring集成通道到activeMQ的连接。如果我不想使用JavaDSL,我只想使用通用的java方法。我该怎么办

@Bean
public IntegrationFlow outboundFlow(ActiveMQConnectionFactory connectionFactory) {
    return IntegrationFlows
            .from(requests())
            .handle(Jms.outboundAdapter(connectionFactory).destination("requests"))
            .get();
}

Jms.outboundAdapter(connectionFactory)是
JmsSendingMessageHandler
的语法糖衣包装器

.handle()
相当于
@ServiceActivator

因此,纯Java需要的是:

@Bean
@ServiceActivator(inputChannel="requests")
public MessageHandler jmsMessageHandler((ActiveMQConnectionFactory connectionFactory) {
   JmsSendingMessageHandler handler = new JmsSendingMessageHandler(new JmsTemplate(connectionFactory));
   handler.setDestinationName("requests");
   return handler;
}
请参阅文档中的一些说明:


更多关于
JmsSendingMessageHandler
Jms.outboundAdapter(connectionFactory)
JmsSendingMessageHandler
的语法糖衣

.handle()
相当于
@ServiceActivator

因此,纯Java需要的是:

@Bean
@ServiceActivator(inputChannel="requests")
public MessageHandler jmsMessageHandler((ActiveMQConnectionFactory connectionFactory) {
   JmsSendingMessageHandler handler = new JmsSendingMessageHandler(new JmsTemplate(connectionFactory));
   handler.setDestinationName("requests");
   return handler;
}
请参阅文档中的一些说明:

有关
JmsSendingMessageHandler
的更多信息: