请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于队列交换机等初始化的问题

现在我想的是能否把交换机队列的信息放入到数据库的表中,在项目启动的时候将一些交换机、队列名称加载进来进行初始化,但是遇到了一个问题就是在@RabbitListener注解中我想要放入要监听的队列名称,但是发现注解中一定要使用常量,我从数据库中查到的数据是变量无法使用。不知道这个样的话应该怎么处理呢?

正在回答

1回答

这里确实不太方便,我目前想到两个方案:

注解中是可以取springboot配置参数的,可以将注解改为取配置参数。

1自己可以写一个sh脚本,先去数据库取配置,再启动应用,启动时将数据库中取到的队列名称,放入启动参数中,或者放入application配置文件中。

2一些微服务技术,可以将动态配置在启动前注入到应用的配置里。

PS 但是话说回来,业务的队列名称还是固定下来比较好。

1 回复 有任何疑惑可以回复我~
  • 提问者 进阶拿offer #1
    谢谢老师非常及时的回答,我也第一时间看了但是由于太忙了忘记立刻回复。目前我们使用的就是您说的第一种方式,在应用启动前我们会将配置从数据库取出来通过环境变量的方式写入项目的配置文件中,在程序代码实现上还是会从配置文件读@Value。因为在做产品升级的时候考虑到队列和监听该队列的消费者动态增减的情况,所以想尝试这一方面,在尝试的时候发现了这个问题哈哈哈。谢谢老师,已采纳!
    回复 有任何疑惑可以回复我~ 2021-06-27 09:27:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信