1) Вам необходимо определить каждого слушателя и продюсера сообщений в контексте весеннего приложения как фасоль. Что-то вроде этого:
<!-- MESSAGE LISTENER CONTAINER -->
<bean id="ListListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="messageListener" ref="messageListener" />
<property name="connectionFactory" ref="qcf" />
<property name="destinationResolver" ref="JmsDestinationResolver" />
<property name="receiveTimeout" value="${jms-timeout}" />
<property name="destinationName" value="${jms-list-topic}" />
<property name="concurrency" value="1" />
<property name="pubSubDomain" value="true" />
<property name="subscriptionDurable" value="${jms-durable-flag}"/>
<property name="durableSubscriptionName" value="${jms-list-durable-name}" />
<property name="clientId" value="${jms-list-client-id}"/>
<property name="sessionTransacted" value="true"/>
</bean>
<bean id="publisher-1" class="com.stack.overflow.JmsPublisherImpl">
<constructor-arg ref="jmsTemplate" />
</bean>
2) Затем вы можете установить соответствующие производители с помощью автоматического связывания или определяется в контексте приложения (смотрите ниже) класса, который будет обрабатывать сообщения. то есть класс, в котором компонент «Слушатель сообщений» ссылается выше:
<bean id="messageListener" class="com.stack.overflow.MessageHandler">
<property name="publisher" ref="publisher-1" />
</bean>
Это всего лишь 1-2-1 картографирование. Для любой другой маршрутизации вы можете добавить несколько издателей (например, выше), то вам решать, как вы реализуете требуемую логику маршрутизации, чтобы решить, какая тема/очереди должна опубликовать сообщение, полученное от потребителя 1 и т. Д. И т. Д.
И любой предложения? – united
'несколько пунктов назначения и для каждого получателя назначения просто, потому что у каждого слушателя есть ОДИН пункт назначения. 'несколько прослушивателей для одного пункта назначения' вы имеете в виду TOPIC? –