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();


}

本工具僅用於調試用,提供一種監聽思想。

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