其他分享
首页 > 其他分享> > 春季-单个JMSTemplate可以在多个生产者中共享吗?

春季-单个JMSTemplate可以在多个生产者中共享吗?

作者:互联网

我想为连接到ActiveMQ代理的多个生产者共享JMSTemplate的单个实例.样本配置:

<bean id="ProducerJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
 <property name="connectionFactory">
     <ref bean="gloProducerJmsFactory" />
 </property>
</bean>

<bean id="pnlMessageProducer1" class="glo.business.core.FAGSCompletionMessage1"
 p:jmsTemplate-ref="ProducerJmsTemplate"
 p:messageDestination-ref="topic_loadGearTb1"
</bean>

<bean id="pnlMessageProducer2" class="glo.business.core.FAGSCompletionMessage2"
p:jmsTemplate-ref="ProducerJmsTemplate" 
p:messageDestination-ref="topic_loadGearTb2"
</bean>

我可以使用以上配置吗?

如此处所述:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html

一旦配置,JmsTemplate类的实例是线程安全的.这很重要,因为这意味着您可以配置JmsTemplate的单个实例,然后安全地将此共享引用注入多个协作者.需要明确的是,JmsTemplate是有状态的,因为它维护对ConnectionFactory的引用,但是此状态不是会话状态.

谢谢,
阿努吉

解决方法:

是…

…you can configure a single instance of a JmsTemplate and then safely inject this shared reference into multiple collaborators…

…正是您的配置所做的.

标签:activemq,spring-jms,jmstemplate,spring,spring-integration
来源: https://codeday.me/bug/20191120/2047618.html