Я следующий потребителя СообщениеПочему JMS слушатель работает без внедрения MessageListener
@Service
public class BlockServiceConsumer {
public void blockService(PhoneServiceVO phoneServiceVO) throws Exception {
// message processing
}
и после конфигурации пружинной с jms:listener-container
connectionFactory
и queue
определения
<context:component-scan base-package="com.stealthgenie.scheduler" />
<context:annotation-config/>
<bean id="blockServiceQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="BLOCK_SERVICE.QUEUE"/>
</bean>
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL">
<value>tcp://localhost:61616</value>
</property>
</bean>
<jms:listener-container acknowledge="auto" connection-factory="connectionFactory" destination-type="queue" concurrency="10-20">
<jms:listener destination="BLOCK_SERVICE.QUEUE" ref="blockServiceConsumer" method="blockService" />
</jms:listener-container>
Мой вопрос: почему эта установка работает нормально без применения MessageListener
, хотя в документации упоминается, что это необходимо. Примечание Кроме того, я не использовал MessageListenerAdapter
В моде по аналогии с Message-Driven Bean (MDB) в EJB мире, управляемый сообщениями POJO (MDP) выступает в качестве приемника для сообщений JMS. Одно ограничение (но см. Также ниже для обсуждения класса MessageListenerAdapter) на MDP заключается в том, что он должен реализовать интерфейс javax.jms.MessageListener. Также имейте в виду, что в случае, когда ваш POJO будет получать сообщения в нескольких потоках, важно убедиться, что ваша реализация является потокобезопасной.
так что это означает выполнение, которое я сделал, это действительно действительно? т.е. без реализации «MessageListener» –
Это верно. –
Спасибо @Gary за указание на весенние справочные документы –