繁体   English   中英

如何从Spring侦听器获取消息ID

[英]How to get the Message Id from a Spring Listener

我有以下代码:

@JmsListener(destination = "myQueue", containerFactory = "myFactory")
public void receiveMessage(MyClass message) {
    service.process(message);
}

现在,我想获取jms消息ID。 我知道我可以重写MappingJackson2MessageConverter类来做到这一点,但是有可能以一种更简单的方式做到这一点,就像在方法上添加第二个参数一样吗?

使用@Header批注:

@SpringBootApplication
public class So46794317Application {

    public static void main(String[] args) {
        SpringApplication.run(So46794317Application.class, args);
    }

    @Bean
    public ApplicationRunner runner(JmsTemplate template) {
        return args -> template.convertAndSend("foo", "bar");
    }

    @JmsListener(destination = "foo")
    public void receive(String in, @Header(JmsHeaders.MESSAGE_ID) String messageId) {
        System.out.println(in + ", id:" + messageId);
    }

}

结果:

bar, id:ID:host.local-50513-1508260336349-4:2:1:1:1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM