在 Spring 引导中配置 Amazon SQS 队列名称
Configure Amazon SQS queue name in Spring Boot
我正在使用 AmazonSQS 和 Spring 引导 (spring-cloud-aws-messaging)。我已经配置了一个消息侦听器来接收来自带有注释@SqsListener 的队列的消息。
@SqsListener(value = "indexerQueue", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void queueListener(String rawMessage) {
...
}
这是一个非常简单的方法,但我没有找到从配置文件加载队列名称的方法,因为我有不同的环境。在这方面有什么想法吗?
您使用的 spring-cloud-aws-messaging
是什么版本? 1.1 版应该允许您使用占位符作为队列名称,例如
@SqsListener(value = "${sqs.queue.indexer}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void queueListener(String rawMessage) {
...
}
然后,在您的 application-env.properties 文件中您可以放置不同的值。例如在 application-dev.properties:
sqs.queue.indexer=devIndexerQueue
并且在应用程序中-production.properties
sqs.queue.indexer=indexerQueue
我正在使用 AmazonSQS 和 Spring 引导 (spring-cloud-aws-messaging)。我已经配置了一个消息侦听器来接收来自带有注释@SqsListener 的队列的消息。
@SqsListener(value = "indexerQueue", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void queueListener(String rawMessage) {
...
}
这是一个非常简单的方法,但我没有找到从配置文件加载队列名称的方法,因为我有不同的环境。在这方面有什么想法吗?
您使用的 spring-cloud-aws-messaging
是什么版本? 1.1 版应该允许您使用占位符作为队列名称,例如
@SqsListener(value = "${sqs.queue.indexer}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void queueListener(String rawMessage) {
...
}
然后,在您的 application-env.properties 文件中您可以放置不同的值。例如在 application-dev.properties:
sqs.queue.indexer=devIndexerQueue
并且在应用程序中-production.properties
sqs.queue.indexer=indexerQueue