项目整体目录结构
项目下载地址:http://download.csdn.net/detail/u013037201/9916729
具体步骤:
一、新建一个maven工程
二、在pom文件中加入依赖的jar包
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>3.16</version>
</dependency>
三、新建一个发送者类
QueueSender.java
package com.sishuok.jmstest.queue;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class QueueSender {
public static void main(String[] args) throws Exception{
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.80.134:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageProducer producer = session.createProducer(destination);
for(int i=0;i<3;i++)
{
TextMessage message = session.createTextMessage("messsage--"+i);
// Thread.sleep(1000);
//通过消息生产者发出消息
producer.send(message);
}
session.commit();
session.close();
connection.close();
}
}
四、新建一个接受者类
package com.sishuok.jmstest.queue;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class QueueReceiver {
public static void main(String[] args) throws Exception{
ConnectionFactory cFactory = new ActiveMQConnectionFactory("tcp://192.168.80.134:61616");
Connection connection = cFactory.createConnection();
connection.start();
final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageConsumer consumer = session.createConsumer(destination);
int i=0;
while(i<3){
i++;
TextMessage message = (TextMessage) consumer.receive();
session.commit();
System.out.println("收到消息:"+message.getText());
}
session.close();
connection.close();
}
}
五、分别运行QueueReceiver与QueueSender
控制台输出显示:
收到消息:messsage--0
收到消息:messsage--1
收到消息:messsage--2
运行原理图:
六、打开ActiveMQ管理控制台查看显示内容
可以看到,排队和取得的消息数量均为3。
小结
及时总结,知识才会变成自己的。