我想为连接到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的引用,但是这个状态不是会话状态。
谢谢,
Anuj
答案 0 :(得分:3)
...是
...您可以配置JmsTemplate的单个实例,然后将此共享引用安全地注入多个协作者......
...正是您的配置所做的。