【问题标题】:Extract headers from message using spring-rabbit without declaring queues in annotation使用spring-rabbit从消息中提取标题而不在注释中声明队列
【发布时间】:2015-04-24 15:34:14
【问题描述】:

现在我可以这样做了:

@RabbitListener(queues = {ENTITY_KEY + "-snapshots",  ENTITY_KEY + "-updates"})
public void handleMessage(ProviderOddsOffer offer, @Header("update_type") Long updateType) {
    ...
}

我可以在注释本身不声明队列的情况下这样做吗?

【问题讨论】:

  • 不清楚你的意思;必须将侦听器配置为从某个队列中消费。
  • 完全正确,但是这个队列可能不会像在这种情况下那样静态定义,我希望能够将此消费者绑定到我想要的任何队列,而不是使用注释,因为注释意味着我知道编译时的队列,我可能不知道。
  • 您可以使用属性占位符${...} 或SpEL 表达式#{...} 作为队列名称;它们将在 bean 初始化期间得到解决。
  • 是的,谢谢,我应该关闭问题还是您将发布答案?
  • 完成;将我的 cmets 移至答案。

标签: java rabbitmq messaging spring-rabbit


【解决方案1】:

不清楚你的意思;必须将侦听器配置为从某个或多个队列中消费。

如果您希望将队列名称外部化而不是在 java 中硬编码,您可以为队列使用属性占位符 ${...} 或 SpEL 表达式 #{...}姓名;它们将在 bean 初始化期间得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2017-07-05
    • 2020-11-27
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    相关资源
    最近更新 更多