首先引入pom依赖:
<!--activemq的依赖 -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.12.0</version>
</dependency>
生产者Producter:
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Producter {
private static final int SEND_NUMBER=5;
public static void main(String[] args) throws JMSException {
//构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
//ConnectionFactory:连接工厂。JMS用它创建连接
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(
ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://localhost:61616"
);
//Connection:JMS 客户端到JMS Privider的连接
Connection connection =connectionFactory.createConnection();
connection.start();
//Session :一个发送或接收消息的线程
Session session =connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//Destination :消息的目的地,消息发送给谁
Destination destination = session.createQueue("qushen-queue");
//消息的发送者/生产者
MessageProducer producer =session.createProducer(destination);
//设置不持久
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
//发送一条消息
sendMessage(session,producer,"qushen");
connection.close();
}
public static void sendMessage(Session session,MessageProducer producer,String msg) throws JMSException {
TextMessage message=session.createTextMessage("Hello AcitiveMQ Msg:"+msg);
producer.send(message);
}
}
消费者Consumer:
package com.qushen.acitivemq.consumer;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Consumer {
public static void main(String[] args) throws JMSException {
//构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
//ConnectionFactory:连接工厂。JMS用它创建连接
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory(
ActiveMQConnectionFactory.DEFAULT_USER,
ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://localhost:61616"
);
//Connection:JMS 客户端到JMS Privider的连接
Connection connection =connectionFactory.createConnection();
connection.start();
//Session :一个发送或接收消息的线程
Session session =connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//Destination :消息的目的地,消息发送给谁
Destination destination = session.createQueue("qushen-queue");
//消息的接受者/消费者
MessageConsumer consumer =session.createConsumer(destination);
while(true) {
TextMessage message=(TextMessage) consumer.receive();
if(null != message ) {
System.out.println("收到消息:"+message.getText());
}else
break;
}
}
}
启动生产者之后启动消费者输出面板如下显示: