2017-10-12 34 views
0

我在Amazon SQS中有一堆隊列,並且我有一個在彈簧服務中運行的異步隊列偵聽器。我跟着this tutorial,它像一個魅力。我的問題是,我不能將隊列名稱硬編碼到@MessageMapping註釋中,我需要能夠從用戶定義的環境變量中獲取它。這裏有一點我在說...使用java和spring的AWS SQS異步查詢偵聽器。如何將環境變量中的值插入@MessageMapping批註

@MessageMapping("queueName") 
public void onSQSMessage(String payload) { 
    //handle payload 
} 

如果我只是硬編碼的隊列名稱這很好,但它需要從環境變量。任何幫助將不勝感激!

回答

1

你可以在一段時間後使用表達式語言。

@MessageMapping(${"queueName"}) 
public void onSQSMessage(String payload) { 
    //handle payload 
} 

見JIRA問題: https://jira.spring.io/browse/SPR-13271

+0

啊我做了嘗試,但我得到了一個「無法解析佔位符」異常。它似乎只在該命名值位於application.properties文件中時才起作用。 –

+0

環境變量的名稱和您使用的佔位符名稱是什麼?因爲可能會對變量進行轉換。像PERSON_FIRST_NAME到person.first.name –

+0

該變量未嵌套在我的VCAP_SERVICES環境的JSON字符串中,它被稱爲「backup_data_queue_name」,這就是我如何引用它的原因。 –

相關問題