2017-03-01 11 views
0

私は、Azureサービスバスからメッセージを読み取るアプリケーションに取り組んでいます。このアプリケーションは、Springブート、Spring jms、およびQpid jmsクライアントを使用して作成されました。キューからメッセージを正しく読み取ることができました。 PFB私のメッセージを読むために使用しているコード。別の宛先をJMSListenerに動的に追加する方法Spring起動時の注釈?

@Service 
public class QueueReceiver { 
@JmsListener(destination = "testing") 
public void onMessage(String message) { 
    if (null != message) { 
     System.out.println("Received message from Queue: " + message); 
    } 
}} 

問題は、我々はdevためtestingqaproductionためtesting-prodためtesting-qaのように、異なるenvironemntsための異なる宛先を持っている、すべてのこれらの値は、それぞれ異なる用途向け(ENV).proerptiesにazure.queueNameとして提供されています。これらの送り先を動的にJmsListener Annotationの送り先に渡したいと思います。私は

@Value("${azure.queueName}") 
private String dest; 

を使用して、私はThe value for annotation attribute JmsListener.destination must be a constant expressionエラーを取得しています

@JmsListener(destination = dest)のように注釈するためにはdestを渡ししようとします。このエラーでグーグルした後、私は注釈に動的な値を渡すことができないことがわかりました。この問題を解決する方法やこれに対する他の解決策を教えてください。

destination="${azure.queueName}" 

すなわち

答えて

1

使用すると、直接注釈でプレースホルダを置きます。

+0

ありがとうございます、これは動作しています。 – anonymous

関連する問題