当前位置: 首页 > 知识库问答 >
问题:

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

宋成天
2023-03-14

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

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

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

共有1个答案

江亮
2023-03-14

您使用的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

并在Application-Production.properties中

sqs.queue.indexer=indexerQueue
 类似资料:
  • 我正在Azure中创建一个函数应用程序,并希望使用队列触发器。我知道如何在设计时配置队列名称,例如: 但是,我希望能够在配置文件中定义和引用它。我知道函数的存在。json(可能是这个),主机。json和本地。设置。json,但我不知道如何在其中设置队列名称并在函数中引用它。 如果我部署在VisualStudio中新创建的函数(使用新的15.3更新),我可以在函数中看到以下内容。部署后的json文件

  • 我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni

  • 我已经通过应用程序配置了我的兔子属性。yaml和spring配置属性。因此,在配置交换、队列和绑定时,可以使用属性的getter 然而,当我配置@RabbitListener从队列登录消息时,我必须使用完整的属性名称,如 我希望避免这种容易出错的硬编码字符串,并参考configurationProperties bean,如: 我曾经遇到过一个与@EventListener类似的问题,在这里使用b

  • 我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样:

  • 我正在尝试使用以下代码在Spring Boot应用程序中配置多个SOLACE队列: } 下面是我尝试给属性的方式: 任何指针都会很有帮助

  • 我有一个spring jms应用程序,目前使用ibm mq server进行队列管理。我们计划将中间件改为rabbitmq,以获得更好的性能并有效地控制它,但希望保持spring jms代码的原样。我遵循了以下链接中提到的所有步骤。https://www.rabbitmq.com/jms-client.html