'int-jms:message-driven-channel-adapter' 'selector' 在 Java DSL 中创建
'int-jms:message-driven-channel-adapter' with 'selector' creation in Java DSL
我有这样的XML基础定义
<int-jms:message-driven-channel-adapter
connection-factory="connectionFactoryName"
destination="destinationName" channel="channelName"
selector="...subscription expression..."
auto-startup="false"/>
我可以像这样在 Java DSL 中创建所需的适配器
Jms.messageDrivenChannelAdapter(connectionFactoryName)
.destination(destinationName)
.outputChannel(channelName)
.autoStartup(false)
.get();
但我不能在这里定义selector
。
我尝试使用 Jms.pollableChannel
工厂方法,但它无法定义 outputChannel
和 autoStartup
功能。
那么我如何通过 Java DSL 创建 int-jms:message-driven-channel-adapter
模拟但需要参数?
messageSelector
是 AbstractMessageListenerContainer
的 属性。
为了保持一致,我们提供了类似的钩子来区分责任:
Jms.messageDrivenChannelAdapter(connectionFactoryName)
.destination(destinationName)
.outputChannel(channelName)
.autoStartup(false)
.configureListenerContainer(c -> c.messageSelector("...subscription expression..."))
.get();
我有这样的XML基础定义
<int-jms:message-driven-channel-adapter
connection-factory="connectionFactoryName"
destination="destinationName" channel="channelName"
selector="...subscription expression..."
auto-startup="false"/>
我可以像这样在 Java DSL 中创建所需的适配器
Jms.messageDrivenChannelAdapter(connectionFactoryName)
.destination(destinationName)
.outputChannel(channelName)
.autoStartup(false)
.get();
但我不能在这里定义selector
。
我尝试使用 Jms.pollableChannel
工厂方法,但它无法定义 outputChannel
和 autoStartup
功能。
那么我如何通过 Java DSL 创建 int-jms:message-driven-channel-adapter
模拟但需要参数?
messageSelector
是 AbstractMessageListenerContainer
的 属性。
为了保持一致,我们提供了类似的钩子来区分责任:
Jms.messageDrivenChannelAdapter(connectionFactoryName)
.destination(destinationName)
.outputChannel(channelName)
.autoStartup(false)
.configureListenerContainer(c -> c.messageSelector("...subscription expression..."))
.get();