我正在從Azure服務總線讀取消息的應用程序上工作。這個應用程序是使用Spring引導,Spring jms和Qpid jms客戶端創建的。我能夠正確地從隊列中讀取消息,沒有任何問題。 PFB我正在使用的代碼來讀取消息。如何在Spring引導中動態添加不同的目標到JMSListener Annotation?
@Service
public class QueueReceiver {
@JmsListener(destination = "testing")
public void onMessage(String message) {
if (null != message) {
System.out.println("Received message from Queue: " + message);
}
}}
的問題是,我們有不同的目的地不同environemnts,如testing
爲dev
,testing-qa
爲qa
和testing-prod
爲production
,所有這些值都設置爲azure.queueName
在不同的應用程序 - (ENV)分別.proerpties。我想通過JmsListener Annotation動態地將這些目標傳遞給目標。當我嘗試使用
@Value("${azure.queueName}")
private String dest;
並通過DEST來註解像@JmsListener(destination = dest)
我得到The value for annotation attribute JmsListener.destination must be a constant expression
錯誤。在使用此錯誤搜索後,我發現我們無法將動態值傳遞給Annotation。請幫助我如何解決此問題或任何其他解決方案。
非常感謝,這是行得通的。 – anonymous