在Java中啟動監(jiān)聽MQ消息的代碼可以使用JMS(Java Message Service)的API來實現(xiàn)。下面是一個簡單的示例代碼:
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
public class MQMessageListener {
public static void main(String[] args) {
try {
// 創(chuàng)建連接工廠
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// 創(chuàng)建連接
Connection connection = connectionFactory.createConnection();
connection.start();
// 創(chuàng)建會話
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 創(chuàng)建目的地(隊列或主題)
Destination destination = session.createQueue("myQueue");
// 創(chuàng)建消息消費者
MessageConsumer consumer = session.createConsumer(destination);
// 設置消息監(jiān)聽器
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
try {
// 處理收到的消息
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Received message: " + textMessage.getText());
}
} catch (JMSException e) {
e.printStackTrace();
}
}
});
// 等待消息的到達
Thread.sleep(10000);
// 關(guān)閉連接
consumer.close();
session.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上述代碼中,首先創(chuàng)建了一個連接工廠(ActiveMQConnectionFactory),然后使用連接工廠創(chuàng)建了連接(Connection),再使用連接創(chuàng)建了會話(Session),會話用于發(fā)送和接收消息。接著創(chuàng)建了一個消息消費者(MessageConsumer),并通過調(diào)用setMessageListener
方法設置了一個消息監(jiān)聽器。消息監(jiān)聽器的onMessage
方法會在有消息到達時被調(diào)用,可以在該方法中對收到的消息進行處理。最后通過調(diào)用Thread.sleep
方法等待消息的到達,關(guān)閉連接時需要分別關(guān)閉消息消費者、會話和連接。