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 に答える