在 Spring JMS 中禁用自动回复

Disable automatic reply in Spring JMS

根据 Spring 参考文献 documentation,用 @JmsListener 注释并具有非 void return 类型的方法将具有调用结果封装在 javax.jms.Message 中并发送到原始消息的 JMSReplyTo header 中指定的目的地或在侦听器上配置的默认目的地。

如果未找到目的地,则会抛出 InvalidDestinationException

有没有办法禁用这种自动回复行为?

编辑

我正在使用 @AroundA​​dvice 来记录执行结果,这就是为什么我需要在我的侦听器上使用 return 类型。

如果方法具有 return 类型,则从该方法返回 null 将禁用回复处理。

您可以通过向方法添加 @Header 参数来检测是否存在 replyTo。

或者,如果没有header,则添加一个带有目的地的@SendTo

编辑

由于您正在使用建议来记录 return 值,因此您可以简单地从建议中 return null,而不是 invocation.proceed() 的结果。