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