上篇博客我们讲了如何接收消息,而且我们也可以自己用线程去处理接收消息,但是spring已经提供了本身的一套监听容器来帮我们做了
配置如下
factory.setAddresses("localhost:5672");
factory.setUsername("guest");
factory.setPassword("guest");
factory.setChannelCacheSize(1);
SimpleMessageListenerContainer container =new SimpleMessageListenerContainer(factory);
container.setConcurrentConsumers(consumerNum);
MessageListenerAdapter adapter=new MessageListenerAdapter(this,new Jackson2JsonMessageConverter());
container.setPrefetchCount(1);
container.setMessageListener(adapter);
container.setQueueNames(queueNames.toArray(new String[queueNames.size()]));
container.start();
同时这个类还必须要有个方法
handleMessage(Object o);
因为监听容器设置的监听适配器后默认执行的方法就是这个名字,当然我们可以更改默认方法.
要注意这个handleMessage是没有返回值的(一般返回值是用在需要回复的时候,也就是所谓的rpc调用)
这个时候我们只要初始化上述配置后,之后在handleMessage方法写自己的逻辑就会打印得到的消息咯.
还有要注意的是container要记得关闭.