2

Я хочу поделиться одним экземпляром 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, но это состояние не является диалоговым.

Спасибо,
Anuj

ответ

2

Да ...

... Вы можете настроить один экземпляр JmsTemplate, а затем безопасно вводить эту ссылку на общий на несколько сотрудников ...

... это именно то, что делает ваша конфигурация.

Смежные вопросы