04 activemq与spring的整合

本文将阐述如何把activemq与spring集成。

1、前提约束

  • 可以使用java完成activemq的topic模式 https://www.jianshu.com/p/d3993d12f3f7

2、修改pom.xml

在pom.xml中加入以下依赖:

        
            org.apache.activemq
            activemq-all
            5.15.3
        
        
            org.apache.solr
            solr-solrj
            4.10.3
        
        
            commons-logging
            commons-logging
            1.2
        

        
            org.springframework
            spring-context
            4.2.4.RELEASE
        
        
            org.springframework
            spring-beans
            4.2.4.RELEASE
        
        
            org.springframework
            spring-webmvc
            4.2.4.RELEASE
        
        
            org.springframework
            spring-jdbc
            4.2.4.RELEASE
        
        
            org.springframework
            spring-aspects
            4.2.4.RELEASE
        
        
            org.springframework
            spring-jms
            4.2.4.RELEASE
        
        
            org.springframework
            spring-context-support
            4.2.4.RELEASE
        

3、创建一个消费者的消息监听

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

public class MessageAddListener implements MessageListener {
    public void onMessage(Message message) {
        TextMessage textMessage=(TextMessage)message;
        try {
            System.out.println("接收到消息:"+textMessage.getText());
        } catch (JMSException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

4、创建一个消费者的配置文件applicationContext-activemq-consumer.xml



    
    
        
    
    
        
    

    
    
        
    

    
    

    
        
        
        
    
 

5、创建一个消费者测试类

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

public class SpringMqQueueConsumer {
    public static void main(String[] args) throws Exception{
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext-activemq-consumer.xml");
        System.in.read();
    }
}

启动测试类。

6、创建一个生产者的配置文件applicationContext-activemq-producer.xml



    
    
        
    
    
    
    

    
    
        
    

    
    
        
        
    

 

7、创建一个生产者测试类,即发送消息

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;

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

public class SpringMqQueueProducer {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext-activemq-producer.xml");
        JmsTemplate jmsTemplate = (JmsTemplate) applicationContext.getBean("jmsTemplate");
        Destination destination = (Destination) applicationContext.getBean("testQueue");
        jmsTemplate.send(destination,new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                Message message = session.createTextMessage("zhangli");
                return message;
            }
        });
    }
}

启动生产者,这时候去查看消费者的命令行,会看到打印出来的消息,即生产者发送了一条消息,消费者收到了这条消息,注意,我们这里是使用activemq的queue模式测试,当然也可以使用activemq的topic模式。

你可能感兴趣的:(04 activemq与spring的整合)