Consumer
消费者,接收消息
接收步骤
第一步:创建一个ConnectionFactory对象
第二步:从ConnectionFactory对象中获得一个Connection对象
第三步:开启连接。调用Connection对象的start方法
第四步:使用Connection对象创建一个Session对象
第五步:使用Session对象创建一个Destination对象,和发送端保持一致queue,并且队列的名称一致
第六步:使用Session对象创建一个Consumer对象
第七步:接收消息
第八步:打印消息
第九步:关闭资源
代码
@Test
public void testQueueConsumer() throws Exception {
//创建一个连接工厂对象
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.25.168:61616");
//使用连接工厂对象创建一个连接
Connection connection = connectionFactory.createConnection();
//开启连接
connection.start();
//使用连接对象创建一个Session对象
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//使用Session创建一个Destination,Destination应该和消息的发送端一致。
Queue queue = session.createQueue("test-queue");
//使用Session创建一个Consumer对象
MessageConsumer consumer = session.createConsumer(queue);
//向Consumer对象中设置一个MessageListener对象,用来接收消息
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
//取消息的内容
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
try {
String text = textMessage.getText();
//打印消息内容
System.out.println(text);
} catch (JMSException e) {
e.printStackTrace();
}
}
}
});
//系统等待接收消息
/*while(true) {
Thread.sleep(100);
}*/
System.in.read();
//关闭资源
consumer.close();
session.close();
connection.close();
}