gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:06 26 4
gpt4 key购买 nike

我正在使用 Spring API 的 JmsTemplateMappingJackson2MessageConverter(版本: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 消息设置一些自定义 header 。我用谷歌搜索并找不到任何这样做的例子。你能帮忙吗?

最佳答案

您可以使用 JmsTemplate 中的 convertAndSend 方法添加自定义属性,方法是发送 MessagePostProcessor,如下所示:

jmsTemplate.convertAndSend("product.topic", product, new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws JMSException {
message.setStringProperty("my_property", "my_value");
return message;
}
});

关于java - Spring JmsTemplate - 添加自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42367309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com