2016-05-28 3 views
1

設定済みのMethodJmsListenerEndpointのすべてのアノテーションを見つける方法はありますか?JMSのannotedメソッドのエンドポイントを取得する

これらのエンドポイントをすべて、さまざまなメッセージリスナーコンテナに登録します。

@JmsListener(destination = "TestQueue") 
public void process(String msg) { 
    System.out.println(msg); 
} 

//TODO for all connections 
foreach(connections){ 
//TODO get all annotated endpoints as prototype 
    foreach(endpoint){ 
     MethodJmsListenerEndpoint processEndpoint = endpoint; 
     registrar.registerEndpoint(processEndpoint,containerFactory(connection)); 
    } 
    } 
+0

バインドするコンテナに '@ JmsListener'を指定することができます。それで、なぜ手動で行う必要があるのですか? –

+0

私たちは、各環境で異なる番号の接続を作成しており、DBから接続の詳細を読み込みます。 –

+0

次に、DBSを 'PropertySource'でフックして、標準の設定メカニズムを使用できるようにします。あなたの全体の設定をもっと簡単にするでしょう。今、私は同じアプローチを以下の午前のよう –

答えて

1

プロバイダによっては、このBeanの初期化中に設定を操作するためにHornetQConfigurationCustomizerのような構成カスタマイザBeanを使用できます。お使いの設定がランタイムで本当に養子で管理する必要がある場合

その後は全く@JmsListenerアノテーションを使用しないでください。 JMS

+0

は、念のために注釈を介して設定されているMethodJmsListenerEndpointを取得するためのメカニズムがあることを知りたいと思いました。 –

+0

これらの注釈のクラスを手動でスキャンすることで可能です。 –

+0

は、あなたが()メソッドpostProcessAfterInitializationに特異的にJmsListenerAnnotationBeanPostProcessorの源泉コード内で見ることができ –

関連する問題