Spring Cloud SQS @MessageMapping 需要常量

问题描述 投票:0回答:3

我正在使用 @MessageMapping 注释来轮询我的 SQS 队列。不过,这里没有问题。我有一个关于根据应用程序环境更改队列名称的一般问题。

可以说,在本地,在我的测试环境中,我希望我的 @MessageMapping 注释从“开发队列名称”进行轮询,但是当我部署到生产时,我想将 @MessageMapping 值更改为“生产队列名称”。

@MessageMapping(ENV_SPECIFIC_QUEUE_NAME)
public void poll(String payload) {
    //do something
}

有没有办法通过配置来实现?

spring amazon-web-services annotations amazon-sqs spring-cloud
3个回答
1
投票
@MessageMapping("${queue_name_from_properties file}")

0
投票

目前无法在 @MessageMapping 注释上动态设置队列名称。我打开了一个 issue 以允许使用由属性占位符设置的属性。

同时,我建议您使用 CloudFormation 模板。通过此解决方案,您可以使用在模板中定义的逻辑队列名称,它将自动解析为其物理名称。 here 描述了与 CloudFormation 的集成。通过此解决方案,您可以使用相同的模板(开发、集成、产品等)启动多个堆栈,并且队列名称不会有任何问题。


0
投票

@alain,已经很久了,但是现在可以动态设置队列名称吗?能举个例子吗

© www.soinside.com 2019 - 2024. All rights reserved.