【问题标题】:How to get custom properties from JMS message in a Spring JMS Listener如何在 Spring JMS 侦听器中从 JMS 消息中获取自定义属性
【发布时间】:2019-03-24 06:50:11
【问题描述】:

我知道您可以通过以下方式访问 Spring JMS 侦听器中的标准标头:

public void receive(String in, @Header(JmsHeaders.MESSAGE_ID) String messageId) 

是否有任何类似的注释可以访问自定义属性?

【问题讨论】:

    标签: java spring jms spring-jms


    【解决方案1】:

    完全一样...

    • 要么使用@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
    

    【讨论】:

      猜你喜欢
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多