AMQ消息队列监听器(Topic)非注解方式

@Component
public class TestMQ {
    //表示消息队列地址路径  注意是tcp连接 IP地址 + 端口号
    public static final String ACTIVEMQ_URL = "tcp://10.10.101.12:8888";
    //配置订阅的目标名
    public static final String TOPIC_NAME= "topic";

   public static void getMessage() throws JMSException, IOException {
        //直接键入用户名 密码
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory("username","password",ACTIVEMQ_URL);

        Connection connection = activeMQConnectionFactory.createConnection();
        connection.start();
        
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        Topic topic = session.createTopic(TOPIC_NAME);
        MessageConsumer messageConsumer =session.createConsumer(topic);

        messageConsumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                if(null != message && message instanceof  TextMessage)

                {
                    TextMessage textMessage=(TextMessage)message;
                    try {
                       System.out.println("--------------------已收到消息:"+textMessage.getText());
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }

            }
        });
        System.in.read();
        messageConsumer.close();
        session.close();
        connection.close();


    }

}

并在入口方法调用getMessage()方法:

public static void main(String[] args) throws IOException, JMSException {

    SpringApplication.run(WebApplication.class, args);

    TestMQ.getMessage();


}

本工具仅用于调试用,提供一种监听思想。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章