消息中间件--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();
    }
}

运行效果:

服务器端:

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值