在此链接中,作者使用特定于Java域的语言来建立从Spring集成通道到activeMQ的连接。如果我不想使用java dsl,而只想使用一般的java方法。我该怎么办?
@Bean
public IntegrationFlow outboundFlow(ActiveMQConnectionFactory connectionFactory) {
return IntegrationFlows
.from(requests())
.handle(Jms.outboundAdapter(connectionFactory).destination("requests"))
.get();
}
答案 0 :(得分:2)
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;
}
请参阅文档中的一些说明:https://docs.spring.io/spring-integration/docs/current/reference/html/overview.html#programming-tips
有关JmsSendingMessageHandler
的更多信息:https://docs.spring.io/spring-integration/docs/current/reference/html/jms.html#jms-outbound-channel-adapter