加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Spring JmsTemplate – 添加自定义属性

发布时间:2020-12-14 23:48:02 所属栏目:Java 来源:网络整理
导读:我使用 Spring API的JmsTemplate和MappingJackson2MessageConverter(版本:spring-jms-4.3.4.RELEASE.jar)来发布消息 到ActiveMQ主题,如下面的代码所示. TopicPublisher类: @Componentpublic class TopicPublisher { @Autowired private JmsTemplate jmsTem
我使用 Spring API的JmsTemplate和MappingJackson2MessageConverter(版本:spring-jms-4.3.4.RELEASE.jar)来发布消息
到ActiveMQ主题,如下面的代码所示.

TopicPublisher类:

@Component
public class TopicPublisher {

    @Autowired
    private JmsTemplate jmsTemplate;

    @Autowired
    private MessageConverter messageConverter;

    public void send() {
        Product product = new Product();
        product.setName("abcd");
        product.setPrice(10);

        jmsTemplate.setMessageConverter(messageConverter);
        jmsTemplate.convertAndSend("product.topic",product);
    }
}

MappingJackson2MessageConverter类:

@Configuration
public class JMSTextMessageConverter {

    @Bean
    public MessageConverter jacksonJmsMessageConverter() {
        MappingJackson2MessageConverter mappingJackson2MessageConverter 
             = new MappingJackson2MessageConverter();
        mappingJackson2MessageConverter.setTargetType(MessageType.TEXT);
        mappingJackson2MessageConverter.setTypeIdPropertyName("_type");
        return mappingJackson2MessageConverter;
    }   
}

现在,我想为发布到主题的JMS消息设置一些自定义标头.
我用谷歌搜索,找不到任何这样做的例子.你能帮我吗 ?

解决方法

您可以通过发送MessagePostProcessor从JmsTemplate使用convertAndSendmethod添加自定义属性,如下所示:
jmsTemplate.convertAndSend("product.topic",product,new MessagePostProcessor() {
        @Override
        public Message postProcessMessage(Message message) throws JMSException {
            message.setStringProperty("my_property","my_value");
            return message;
        }
    });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读