一、pom.xml与mq.properties

Spring提供了对JMS的支持,需要添加Spring支持jms的包,如下:


    org.springframework
    spring-jms
    4.1.7.RELEASE

添加ActiveMQ的pool包,如下:


    org.apache.activemq
    activemq-pool
    5.11.1

添加xbean的标签配置,如下:


    org.apache.xbean
    xbean-spring
    3.16

mq.properties:

activemq.brokerURL=tcp://192.168.91.8:61616
activemq.userName=liuy
activemq.password=123456
activemq.maxConnections=100
activemq.destination.name=spring-queue
activemq.destinationTopic.name=spring-topic


二、mq.xml配置



	
            
	        
		    
		        ${activemq.brokerURL}
		    
		    
            	     
		
	    
	    
	
	
	    
	    
	    
	    
	        
	    
	
	
	
	    
	
	
	
	    
	


三、消息发送与接收

package com.liuy.spring;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;

/**
 * @description 描述
 * @author liuyu
 * @version 1.0
 * @date:2017年4月11日下午8:32:46
 */
@Service
public class MQService {
    @Autowired
    private JmsTemplate jt;
    
    /**发送*/
    public void send(String message) {
        jt.send(new MessageCreator() {
	    public Message createMessage(Session s) throws JMSException {
	        TextMessage msg = s.createTextMessage(message);
		return msg;
	    }
	});
    }
    
    /**接收*/	
    public void receiver() {
        String msg = (String)jt.receiveAndConvert();
	System.out.println("msg==="+msg);
    }
}

四、监听器

如果想要在Spring中配置消费者的话,就不需要再启动接收的客户端了,配置如下:



    
    
    
    

package com.liuy.spring.b.listener;

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

/**
 * @description 描述
 * @author liuyu
 * @version 1.0
 * @date:2017年4月15日上午11:00:23
 */
public class MyMessageListener implements MessageListener {

    @Override
    public void onMessage(Message message) {
        TextMessage msg = (TextMessage) message;
	try {
	    System.out.println("receive txt msg===" + msg.getText());
        } catch (JMSException e) {
	    e.printStackTrace();
        }
    }

}