'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 工厂方法,但它无法定义 outputChannelautoStartup 功能。

那么我如何通过 Java DSL 创建 int-jms:message-driven-channel-adapter 模拟但需要参数?

messageSelectorAbstractMessageListenerContainer 的 属性。

为了保持一致,我们提供了类似的钩子来区分责任:

Jms.messageDrivenChannelAdapter(connectionFactoryName)
    .destination(destinationName)
    .outputChannel(channelName)
    .autoStartup(false)

    .configureListenerContainer(c -> c.messageSelector("...subscription expression..."))

    .get();