Spring Boot @JmsListener拦截器

问题描述 投票:0回答:1

在我的应用程序中,我将消息从一个队列移到另一个队列,我想在日志中添加消息ID,我试图弄清楚是否可以在实际处理之前拦截消息,并在MDC字段中设置消息ID,以便我可以在所有队列中跟踪此消息。但到目前为止无法获得成功。是否有解决方案,或者我如何实现。

java spring-boot jms spring-jms
1个回答
0
投票
可以,但是后来我无法访问邮件属性。我可以重写或访问jms组件中某处的任何消息上下文以获取消息属性以进行记录吗?

您可以将原始JMS Message(或仅消息ID属性)添加为@JmsListener的附加参数(并使用invocation.getArguments()访问它,或者可以包装整个侦听器适配器,而不仅仅是包装侦听器bean。使用容器注册表获取对容器的引用,然后单击container.setMessageListener(wrap(container.getMessageListener()));

© www.soinside.com 2019 - 2024. All rights reserved.