spring整合Activemq入门实战详细介绍二

本篇是基于jar包的方式整合,非maven方式,如需了解maven方式,请查看博主的Activemq入门实战详细介绍一,是采用maven方式写的。

MQ
首先简单的介绍一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接受和转发的容器,可用于消息推送。

ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并有许多高级功能。

下载ActiveMQ ,这里是基于windows 版本的案例(实际生产还是

官方网站:http://activemq.apache.org/ 

下载解压得到如下图所示:

以上的目录结构说明: 

bin存放的是脚本文件
conf存放的是基本配置文件
data存放的是日志文件
docs存放的是说明文档
examples存放的是简单的实例
lib存放的是activemq所需jar包
webapps用于存放项目的目录
启动ActiveMQ 
我们了解activemq的基本目录,下面我们运行一下activemq服务,进入bin目录下的activemq.bat脚本文件或运行自己电脑版本下的activemq.bat,就可以看下图的效果。 

spring整合Activemq入门实战详细介绍二_第1张图片

 监控 
ActiveMQ默认启动时,启动了内置的jetty服务器,提供一个用于监控ActiveMQ的admin应用。 
在浏览器中输入:http://127.0.0.1:8161/admin/

用户名和密码都是admin

spring整合Activemq入门实战详细介绍二_第2张图片

停止服务器,只需要按着Ctrl+Shift+C,之后输入y即可。

=====================================================================

首先,这边把博主的项目结构图如下:这样应该比较清晰吧,如果还是不明白的话,博主可以上传代码,但觉得代码又太简单了,你跟着博主的代码也能跑通的,加油吧!两个项目其实与实际企业开发的流程是差不多的,一个项目调用另一个项目的数据。如果还是不明白的话,请给博主留言,如果是大神的话,您就可以直接无视此项目,毕竟博主目前技术水平不咋的,谢谢。
————————————————

两个项目结构:activemq-producer 发送消息队列的项目,activemq-consumer 接收消费队列的项目。

spring整合Activemq入门实战详细介绍二_第3张图片

具体步骤:1:首先创建activemq-producer与activemq-consumer这两个项目。

2.然后导入依赖需要的jar包:

spring整合Activemq入门实战详细介绍二_第4张图片

3:配置生产方的配置:applicationContext-activemq.xml



	
	
		
		
	
	
	
		
	
	
	
		
	
	
	 
	 		
		
	 
	
	
	 
	

4:配置消费方的配置:applicationContext-activemq.xml



	
	
		
		
	
	
	
		
	
	
	
		
	
	
	
		
	 
	
	
	
	
	 
	
	
		
		
		
		
	
	
	

5:写生产方的测试:Producer

package com.learn.activemq;

import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;


import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;

public class Producer {
	@Test
	public void send() throws Exception{
		//1.初始化spring容器
		ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext-activemq.xml");
		//2.获取到jmstemplate的对象
		JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);
		//3.获取destination
		Destination destination = (Destination) context.getBean(Destination.class);
		//4.发送消息
		jmsTemplate.send(destination, new MessageCreator() {
			
			@Override
			public Message createMessage(Session session) throws JMSException {
				return session.createTextMessage("我是activemq发送者,生产者,请问消费者在吗?");
			}
		});
		Thread.sleep(1000);//休息1000毫秒  =1秒
		
	}
}

 

6:写消费方的监听器:

package com.learn.activemq;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import javax.xml.soap.Text;

public class MyMessageListener implements MessageListener {

	@Override
	public void onMessage(Message message) {
		//获取消息
		if(message instanceof TextMessage){
			TextMessage textMessage = (TextMessage)message;
			String text;
			try {
				text = textMessage.getText();
				System.out.println(text);
			} catch (JMSException e) {
				e.printStackTrace();
			}
		}
	}

}

7:写消费方的测试:(博主这里队列消息模式测试没有问题,但订阅消息模式测试没有成功,需要再修改)

package com.learn.activemq;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class ActivemqConsumerTest {
	@Test
	public void testQueueConsumer() throws Exception {
		//初始化spring容器
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext-activemq.xml");
		//等待
		System.in.read();
	}

}

启动方式:先启动Producer,然后再运行ActivemqConsumerTest。运行就可看到结果:

spring整合Activemq入门实战详细介绍二_第5张图片

最后,博主把代码上传到CSDN中,如果没有弄懂,可以参考下载的代码学习Demo.

你可能感兴趣的:(spring整合Activemq入门实战详细介绍二)