2016-04-14 9 views
0

実行時にリスナーコンテナからいくつかのリスナーを追加/削除する方法を知りたい。実行時にリスナーコンテナからリスナーを追加/削除する方法

私は以下のようにリスナーコンテナを構成していますので、実行時にXMLから:「リスナーウサギ」とアプリケーションコンテキストを更新

<rabbit:listener-container connection-factory="connectionFactory"> 
    <rabbit:listener ref="Listener0" queues="ListenerQueue0" /> 
    <rabbit:listener ref="Listener1" queues="ListenerQueue1" /> 
    <rabbit:listener ref="Listener2" queues="ListenerQueue2" /> 

一つの方法は、頭に浮かぶが、我々は追加/削除することができますです新しい設定が読み込まれます。 これは良い方法ですか?

他の提案もお知らせください。前もって感謝します。

答えて

0

あなたが説明しているアプローチは使用しません。

<rabbit:listener/>の子要素は実際にはSimpleMessageListenerContainerです。<rabbit:listener-container/>は、「子」コンテナに共通の属性を提供する単なる構文糖です。

リスナーがPOJO(MessageListenerではない)の場合は、MessageListenerAdapterにラップしてください。

したがって、実行時に新しいSimpleMessageListenerContainerを作成するだけです。設定後にafterPropertiesSet()に電話してから、start()に電話してください。

関連する問題