我知道這已經有一段時間了,但是我遇到了同樣的問題,解決了這個問題,並希望在此給出一個明確的代碼示例。
這是我的MessageListener
。這實現了onMessage(Message)
方法異步截取消息。然後
package com.package.amqp;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;
import org.springframework.amqp.support.converter.JsonMessageConverter;
import com.package.model.User;
public class TestListener implements MessageListener {
public void onMessage(Message message) {
JsonMessageConverter jmc = new JsonMessageConverter();
User u = (User)jmc.fromMessage(message);
System.out.println("received: " + u.getFirstName());
}
}
的消息在我的情況下使用標準JsonMessageConvertor
因爲這是我messageConvertor
插入到我的rabbitTemplate
豆轉換。
<bean id="rabbitConnectionFactory" class="org.springframework.amqp.rabbit.connection.SingleConnectionFactory">
<constructor-arg value="10.10.1.2"/>
<property name="username" value="guest"/>
<property name="password" value="guest"/>
</bean>
<bean class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer">
<property name="connectionFactory" ref="rabbitConnectionFactory"/>
<property name="queueName" value="queue.helloWorld"/>
<property name="messageListener" ref="someListener"/>
</bean>
<bean id="someListener" class="com.package.amqp.TestListener"></bean>
<bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">
<property name="connectionFactory" ref="rabbitConnectionFactory"/>
<property name="messageConverter">
<bean class="org.springframework.amqp.support.converter.JsonMessageConverter"/>
</property>
</bean>
希望這可以幫助別人! Owen
如何使用MessageListener的service-activator instea接收消息? – luksmir 2013-07-18 10:48:04
@luksmir,我不熟悉Spring集成,但http://stackoverflow.com/questions/10351948/using-spring-integration-with-rabbitmq可能會幫助你? – 2013-07-22 22:15:30