spring-integration - 如果我不想使用 dsl 编写在 jms 和 spring 集成通道之间建立连接的代码,它是怎么做的
问题描述
在这个链接中,作者使用 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
推荐阅读
- javascript - 如何将突变观察者添加到 WebView2 控件
- python - Python:将 Long 强制转换为 Int32
- firebase - 错误:没有为“Geolocator”类定义方法“getPositionStream”
- excel - 通过分隔符解析单元格
- javascript - 世博会本地通知在后台
- mysql - SELECT JSON_ARRAYAGG FROM TABLE 名称作为参数问题
- python - 如何从连接到同一网络的其他设备查看我的 django 站点
- kubernetes - 在特定节点上创建文件
- python - 如何在 Tkinter 中修复这个 Textwidget?
- php - SimpleSAML - 找不到具有实体 ID 的 IdP 的元数据