2017-10-12 130 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”,这就是我如何引用它的原因。 –

相关问题