How to get custom properties from JMS message in a Spring JMS Listener(如何在Spring JMS侦听器中从JMS消息中获取自定义属性)
本文介绍了如何在Spring JMS侦听器中从JMS消息中获取自定义属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道您可以使用如下内容访问Spring JMS侦听器中的标准标头:
public void receive(String in, @Header(JmsHeaders.MESSAGE_ID) String messageId)
是否有用于访问自定义属性的类似批注?
推荐答案
完全相同.
- 使用
@Header
注释(请参阅方法listen
)
或
- 使用封装消息头和负载的
Message
接口(参见方法listenMessage
)
@SpringBootApplication
public class So52891334Application {
public static void main(String[] args) {
SpringApplication.run(So52891334Application.class, args);
}
@JmsListener(destination = "foo")
public void listen(String payload, @Header("bar") String bar,
@Header("qux") int qux) {
System.out.println(payload + ", bar header: " + bar + ", qux header: " + qux);
}
@JmsListener(destination = "bar")
public void listenMessage(Message<String> message) {
String payload = message.getPayload();
// Get headers from JMS message
MessageHeaders headers = message.getHeaders();
String headerBar = headers.get("bar", String.class);
Integer headerQux = headers.get("qux", Integer.class);
System.out.println(payload + ", bar header: " + headerBar + ", qux header: " + headerQux);
}
@Bean
public ApplicationRunner runner(JmsTemplate template) {
return args -> template.convertAndSend("foo", "test", m -> {
m.setStringProperty("bar", "baz");
m.setIntProperty("qux", 42);
return m;
});
}
}
和
test, bar header: baz, qux header: 42
这篇关于如何在Spring JMS侦听器中从JMS消息中获取自定义属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在Spring JMS侦听器中从JMS消息中获取自定义属性
基础教程推荐
猜你喜欢
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01