具体的直接看例子,理论知识就不说了
生成者的类
package com.study.jms.test;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Produer {
private static final String URL = "tcp://127.0.0.1:61616";
private static final String QUEUE_NAME = "test-jms";
public static void main(String [] args) throws Exception{
//创建连接工厂
ConnectionFactory factory = new ActiveMQConnectionFactory(URL);
//创建连接
Connection connection = factory.createConnection();
//启动连接
connection.start();
//获取一条session 进程
// 第一个参数 :是否进行事务控制 第二个参数 session 执行 策略,默认自动的就行了
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建一个生产者发送的目的地地址
Destination destination = session.createQueue(QUEUE_NAME);
//创建生产者并且设置目的地地址
MessageProducer producer = session.createProducer(destination);
//发送消息
for(int i = 0 ; i < 20 ; i ++) {
TextMessage textMessage = session.createTextMessage("发送的消息zxc: " + i);
//发送信息到目的地
producer.send(textMessage);
//打印信息到控制台
System.out.println(textMessage.getText());
}
//关闭session 和连接
session.close();
connection.close();
}
}
消费者的类
package com.study.jms.test;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class Coumser {
private static final String URL = "tcp://127.0.0.1:61616";
private static final String QUEUE_NAME = "test-jms";
public static void main(String [] args) throws Exception{
//创建连接工厂
ConnectionFactory factory = new ActiveMQConnectionFactory(URL);
//创建连接
Connection connection = factory.createConnection();
//开启连接
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(QUEUE_NAME);
//创建消息者
MessageConsumer consumer = session.createConsumer(destination);
//监听信息
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("收到的消息:" + textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
//session 和连接需要等信息消费完才能关闭,要不然信息会收不到
//session.close();
// connection.close();
}
}