消息中间件--activemq--消费者消费队列消息(2)Listener监听

消费者消费队列消息Listener方法也分7步走

1.创建connection工厂

2.创建connection

3.创建会话session

4.创建目的地(现在是连接队列)queue

5.创建消费者consumer

6.监听服务器消费消息Listener()

7.释放资源
代码示例:

package com.xiaowu.activemq;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

import java.io.IOException;

import static javax.jms.Session.AUTO_ACKNOWLEDGE;

public class JmsConsumerListener {
    public static final String ACTIVEMQ_URL="tcp://152.136.12.27:61616";
    public static final String Queuep="queue01";
    public static void main(String[] args) throws JMSException, IOException {
        //1.create factory
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(ACTIVEMQ_URL);
        //2.create connect and start
        Connection connection = activeMQConnectionFactory.createConnection();
        connection.start();
        //3.create session
        Session session = connection.createSession(false, AUTO_ACKNOWLEDGE);
        //4.create 目的地
        Queue queue = session.createQueue(Queuep);
        //5.create consumer
        MessageConsumer messageConsumer = session.createConsumer(queue);
        //6.监听服务器
        messageConsumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                //判断消息是否为空并且是否是TextMessage类型
                if (message!=null&&message instanceof TextMessage){
                    try {
                        //消费前保证和生产者生产的消息类型相同,强制转换
                        System.out.println("消费者监听到消息:"+((TextMessage) message).getText());
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        //System.in.read()方法是为了保证监听是有时间处理消息,不加还没连接到消息程序就结束了
        System.in.read();
        //7.释放资源
        messageConsumer.close();
        session.close();
        connection.close();
    }
}

运行效果:

消息中间件--activemq--消费者消费队列消息(2)Listener监听_第1张图片

服务器端:

可以看到,和上一篇的方法运行结果是一样的(消息队列消息是删除之后重新生成的) 

你可能感兴趣的:(activemq)