1 生产者
第一步:引用相关的jar包。
org.springframework spring-jms org.springframework spring-context-support org.apache.activemq activemq-all
第二步:配置Activemq整合spring。配置ConnectionFactory applicationContext-activemq.xml
第三步:配置生产者。
使用JMSTemplate对象。发送消息。
第四步:在spring容器中配置Destination。
spring-queue
第五步:代码测试
package com.shi.page;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.Session;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.core.MessageCreator;/** * * @author: SHF * @date: 2018年3月16日 下午1:39:20 * @Description: spring 整合activemq测试 */public class springActiveMqTest { @Test public void testpublichMQ()throws Exception{ //1 初始化spring容器 ApplicationContext application=new ClassPathXmlApplicationContext("classpath:spring/applicationContext-activemq.xml"); //2 从spring容器中获得jsmTemplate对象 JmsTemplate jmsTemplate=application.getBean(JmsTemplate.class); //3 从spring容器中获取Distination对象 Destination distination=(Destination) application.getBean("queueDestination"); //4 使用jmsTempate对象发送消息 jmsTemplate.send(distination,new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { // 创建一个消息对象并返回 return session.createTextMessage("spring active queue22222"); } }); }}
2 消费者
2.2.2. 接收消息
e3-search-Service中接收消息。
第一步:把Activemq相关的jar包添加到工程中
第二步:创建一个MessageListener的实现类。
package com.shi.search.activemq;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;/** * * @author: SHF * @date: 2018年3月16日 下午2:33:05 * @Description: 消息队列监听对象,消费者。用来接受消息 */public class MyMessageListener implements MessageListener { @Override public void onMessage(Message paramMessage) { // 监听中 处理接收到的消息 TextMessage textMessage=(TextMessage) paramMessage; try { String text = textMessage.getText(); System.out.println(text); } catch (JMSException e) { e.printStackTrace(); } }}
第三步:配置spring和Activemq整合。
spring-queue
第四步:测试代码。
package com.shi.solr;import java.io.IOException;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * * @author: SHF * @date: 2018年3月16日 下午2:45:16 * @Description: ActiveMQ消费者测试 */public class ActiveMQCusomerTest { @Test public void customerTest() throws IOException{ //只需要初始化spring容器,系统会帮我们监听的 ApplicationContext application=new ClassPathXmlApplicationContext("classpath:spring/applicationContext-activemq.xml"); //等待 System.in.read(); }}