记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

时间:2024-03-28 20:52:08

场景描述:

         1.项目启动,通过注解获取配置文件中需要监听的队列信息

          2.需要重新启动后才会生效,因为是在配置文件中

          3.或许可以调整从数据库中读取或者nacos动态配置试着是不是可以不用重启,没有亲自测试,只是觉得应该也是可以

 

话不多说,先在配置文件中写上你想监听的queue,我们先弄个简单的单个队列示例

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

 记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程 单个,在配置文件里面是可以正常的。那么,如果想配置多个呢。 还可以这么玩吗???哈哈哈,显然是不行的。下面来看看多个的是个什么情况吧。

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

纳尼。。。启动就报错了,哈哈咋一看想解析出来接收的对象不是数组呢,那我们先不读取配置,直接配上去看下什么情况呗。

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

嗯?这么配置肯定是没问题的,那么问题就来了 怎么解析成数组呢。。加个大括号试试。。

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程 

还是报错,google了下${}表达式解析数组,各种看了云里雾里。貌似有一篇文章,我看了,好像有点灵感就尝试了下。竟然可以了,我也不知道为什么可以,反正它就是可以了。由于网上没找到比较好的内容,所以我就在这里mark一下了

以下是最后处理的代码截图

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

启动成功了呢,那就尝试下是不是可以监听多个了

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程 

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程

记录一下关于RabbitMQ消费端@RabbitListener动态配置监听队列Queue的处理过程 

好了,到此就都接收到了。我也不知道具体是为什么,反正就是这么出来了,希望对想要做这种动态监听队列的有帮助 .