私は、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
ためtesting
、qa
とproduction
ため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}"
すなわち
ありがとうございます、これは動作しています。 – anonymous