Java Spring JmsTemplate特定于目的地的消息持久性

Java Spring JmsTemplate特定于目的地的消息持久性,java,spring-jms,jmstemplate,Java,Spring Jms,Jmstemplate,我正在使用JmsTemplate(spring-jms-5.2.8)将消息发送到一个嵌入式ActiveMQ代理,发送到多个主题。我希望一些主题是持久的(发送给它们的消息是持久的),而有些则不是。不幸的是,JmsTemplate似乎正在为通过它发送的所有消息全局配置传递模式(需要启用QOS) 直接在邮件上设置传递模式没有帮助,因为它稍后会被覆盖 jmsTemplate.convertAndSend(destination, event, message -> { message.se

我正在使用
JmsTemplate
(spring-jms-5.2.8)将消息发送到一个嵌入式ActiveMQ代理,发送到多个主题。我希望一些主题是持久的(发送给它们的消息是持久的),而有些则不是。不幸的是,JmsTemplate似乎正在为通过它发送的所有消息全局配置传递模式(需要启用QOS)

直接在邮件上设置传递模式没有帮助,因为它稍后会被覆盖

jmsTemplate.convertAndSend(destination, event, message -> {
    message.setJMSDeliveryMode(XXX);
    return message;
});
解决这个问题的最佳方案是什么?所有通过JmsTemplate的消息都必须是持久的还是非持久的?我必须创建两个单独的JMSTemplate吗?这是一个好方法吗?我要经过的连接工厂呢?两个模板是否可以使用相同的连接工厂

谢谢

我必须创建两个单独的JMSTemplate吗?这是一个好方法吗

对,;最简单的解决方案是定义两个模板

上面的连接工厂怎么样

???不清楚你说的“上面”是什么意思


您可以在每个模板中使用相同的工厂;他们将共享连接。

问题已澄清,您也已回答。谢谢