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

兔子侦听器注释从yaml获取队列名称

隆睿
2023-03-14

我当前将我的rabbit listener注释设置为:

@RabbitListener(queues=“my queue”)

是否无法从我的yaml文件中提取队列名称。我想这样做的原因是,我可以将队列更改为集成测试的测试队列,只需更改yaml文件中的队列名称即可。看来注释必须接受常量字符串,有什么办法吗?谢谢

共有1个答案

步建茗
2023-03-14

是的,它被称为属性占位符,可以这样做:

@RabbitListener(queues = "${myQueue.property}")

myQueue.property正是在yaml中声明的。

https://docs.spring.io/spring-amqp/docs/1.7.3.RELEASE/reference/html/_reference.html#async-annotation-driven

参数名称、值和类型可以是属性占位符(${...})或SpEL表达式(#{...})。名称必须解析为String;type的表达式必须解析为Class或类的完全限定名称。该值必须解析为可以由DefaultConversionService转换为类型的内容(例如上述示例中的x-mage-ttl)。

 类似资料:
  • 我正在尝试使用spring cloud AWS注释驱动的队列侦听器编写一个使用AWS SQS的web应用程序,下面是我的代码的样子: XML AWS bean: 然后我编写了这个类,它有一个带有SqsListener anotation的方法,它将hello打印到控制台: 这是我的gradle构建文件: 但是当我运行这个应用程序的时候,我对java和spring boot是个新手,有没有做错什么

  • 我有一个spring boot rabbitmq应用程序,其中我必须将一个Employee对象发送到队列中。那么我已经设置了一个侦听器应用程序。对employee对象进行一些处理,并将此对象放入回调队列中。 为此,我在应用程序中创建了以下对象。 null 我的应用程序文件如下所示。 应用程序.属性 MainClass.java EmployeeResponseReceiver. 问题是每当我启动我

  • 我试图让队列在laravel 5中工作,队列侦听器正在输出: 未定义索引:表 存在"作业"和"failed_jobs"表,config.php设置为"数据库"。 搜索laravel论坛和google都没有找到解决办法,艾米的想法去哪里找?

  • 在这篇文章中,加里·拉塞尔解释了如何通过编程创建多个Kafka列斯汀来聆听多个主题。。Kafka·斯普林:如何动态或在循环中创建监听器? 现在我想有一个类似的设置也适用于JMSListeners-在那里我可以有一个带有一个@JMSListener的类,并且我可以以编程方式创建该JMSListener的多个实例,每个实例都注入了自己的queueName。 我发现这篇文章Spring JMS开始根据请

  • **服务器** **客户** 并且我运行它,ip是环回(127.0.0.1),端口是7755。 客户端套接字的对等ip:127.0.0.1 客户端套接字的对等端口6311 -1 0 0 0 我的问题是,如果监听(服务器)套接字只处理客户端的连接,那么它的对等端不应该存在?那个错误的IP和端口是什么?只是垃圾值?