在Spring Boot中配置Amazon SQS队列名称

时间:2016-07-16 02:17:31

标签: java spring-boot amazon-sqs spring-cloud-aws

我正在使用AmazonSQS& Spring Boot(spring-cloud-aws-messaging)。我已经配置了一个消息监听器来使用注释@SqsListener从队列接收消息。

@SqsListener(value = "indexerQueue", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void queueListener(String rawMessage) {
   ...
}

这是一种非常简单的方法,但我没有找到从配置文件加载队列名称的方法,因为我有不同的环境。有关这方面的任何想法吗?

1 个答案:

答案 0 :(得分:7)

您使用的是什么版本的spring-cloud-aws-messaging?版本1.1应该允许您使用占位符作为队列名称,例如

@SqsListener(value = "${sqs.queue.indexer}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void queueListener(String rawMessage) {
   ...
}

然后,在您的应用程序 - env .properties文件中,您可以添加不同的值。例如,在 application-dev.properties

sqs.queue.indexer=devIndexerQueue

并在 application-production.properties

sqs.queue.indexer=indexerQueue