3

我想为连接到 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 的引用,但这种状态不是会话状态。

谢谢,
阿努杰

4

1 回答 1

3

是的...

...您可以配置 JmsTemplate 的单个实例,然后将此共享引用安全地注入多个协作者...

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

于 2014-12-26T14:19:00.537 回答