は、私は、これは頼まれたので、それがしばらくしているけど、私は、同じ問題を抱えていた、それを解決し、ここに明示的なコード例を与えたいと思いました。
は、ここに私のMessageListener
です。これにより、メッセージを非同期に傍受する方法onMessage(Message)
が実装されます。これは私が私のrabbitTemplate
豆に差し込まmessageConvertor
あるよう
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
を使用して変換されます。
<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>
オーウェンのMessageListenerのサービスベーターinsteaでメッセージを送受信する方法
? – luksmir
@luksmir、私はSpring Integrationに精通していませんが、http://stackoverflow.com/questions/10351948/using-spring-integration-with-rabbitmqが役立ちますか? –