2014-12-26 43 views
2

我想为连接到ActiveMQ代理的多个生产者共享JMSTemplate的单个实例。示例配置:单个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> 

我可以使用上面的配置吗?

如此地:JmsTemplate类的http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html

实例是线程安全的一次配置。这很重要,因为这意味着您可以配置JmsTemplate的单个实例,然后将此共享引用安全地注入多个协作者。清楚的是,JmsTemplate是有状态的,因为它保持对ConnectionFactory的引用,但是这种状态不是会话状态。

感谢,
Anuj

回答

2

是...

...你可以配置一个JmsTemplate的单个实例,然后注入安全这一共同参考为多个协作者...

...正是你的配置所做的。

相关问题