2016-04-21 10 views
1

Ich habe die solche XML-Basen Definition'int-jms: Message-Driven-Kanal-Adapter' mit 'Wähler' Schöpfung in Java DSL

<int-jms:message-driven-channel-adapter 
    connection-factory="connectionFactoryName" 
    destination="destinationName" channel="channelName" 
    selector="...subscription expression..." 
    auto-startup="false"/> 

und ich kann in Java DSL wie diese

benötigt Adapter erstellen
Jms.messageDrivenChannelAdapter(connectionFactoryName) 
    .destination(destinationName) 
    .outputChannel(channelName) 
    .autoStartup(false) 
    .get(); 

aber ich kann hier nicht selector definieren.

Ich habe versucht, Jms.pollableChannel Factory-Methode zu verwenden, aber es hat keine Fähigkeit, outputChannel und autoStartup Features zu definieren.

Also wie kann ich int-jms:message-driven-channel-adapter Analog über Java DSL aber mit den erforderlichen Parametern erstellen?

Antwort

2

Die messageSelector ist eine Eigenschaft von AbstractMessageListenerContainer.

Um konsequent zu bleiben wir die ähnlichen Haken bieten die Verantwortung zu unterscheiden:

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

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

    .get(); 
+0

ich eine andere 'Jms.messageDrivenChannelAdapter' Methode mit' listenerContainer' als Parameter zu verwenden versucht, aber Du Version ist viel einfacher. Vielen Dank! –