在此链接中,作者使用java域特定语言来构建从spring集成通道到activeMQ的连接。如果我不想使用java dsl而我只想使用通用的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;
}
请参阅文档中的一些解释: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