在前面我们已经可以基本使用ActiveMQ来实现基本的功能了,在网上有很多关于ActiveMQ与Spring整合的例子,在这里的话,也分享一下吧。
与Spring整合开发的话,非常方便。
1. pom.xml
4.0.0 org.ygy activemq 0.0.1-SNAPSHOT jar activemq http://maven.apache.org UTF-8 3.1.1.RELEASE junit junit 4.10 test org.apache.activemq activemq-core 5.7.0 org.slf4j slf4j-api 1.5.6 org.slf4j slf4j-log4j12 1.5.6 org.springframework spring-context ${spring.version} org.springframework spring-jms ${spring.version} org.apache.activemq activemq-spring 5.8.0
2. 生产者
package org.ygy.mq.lesson03;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.Session;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.core.MessageCreator;/** * * @author yuguiyang * */public class SpringProducer { //Spring的模板,封装了很多功能 private JmsTemplate jmsTemplate; public void setJmsTemplate(JmsTemplate jmsTemplate) { this.jmsTemplate = jmsTemplate; } public void send() { //使用JMSTemplate可以很简单的实现发送消息 jmsTemplate.send(new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage("地瓜!地瓜!"); } }); }}
3. 消费者
package org.ygy.mq.lesson03;import javax.jms.TextMessage;import org.springframework.jms.core.JmsTemplate;/** * * @author yuguiyang * @description 消费者 * @time 2013-10-14 * @version V1.0 */public class SpringConsumer { private JmsTemplate jmsTemplate; public void setJmsTemplate(JmsTemplate jmsTemplate) { this.jmsTemplate = jmsTemplate; } //接收消息 public void recive() { while (true) { try { //使用JMSTemplate接收消息 TextMessage txtmsg = (TextMessage) jmsTemplate.receive(); if (null != txtmsg) { System.out.println("--- 收到消息内容为: " + txtmsg.getText()); } else { break; } } catch (Exception e) { e.printStackTrace(); } } }}
4. 配置文件
其他的代码基本上就是Spring的配置文件了
tcp://127.0.0.1:61616
5. 测试
package org.ygy.mq.lesson03;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * ActiveMQ与Spring整合 ===初步整合 * 1.消费者 * 2.生产者 * 3.配置文件 * * @author Administrator * */public class JMSTest { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext-jms.xml"); SpringProducer producer = (SpringProducer)applicationContext.getBean("springProducer"); producer.send(); SpringConsumer consumer = (SpringConsumer) applicationContext.getBean("springConsumer"); consumer.recive(); }}就这样,整合就算是完成了,Spring将多数的代码封装起来,通过配置文件,就可以了。
这里的消费者,是通过调用JMSTemplate的receive()方法来接收消息的,还有一种是实现监听的方式。
下一篇博客,会分享一下。