最近有个项目使用ActiveMQ,自己记录一下Queue的使用情况。


maven管理的jar包(主要的):


    org.springframework
    spring-jms
    3.2.3.RELEASE


    org.apache.geronimo.specs
    geronimo-jms_1.1_spec
    1.1


    org.apache.activemq
    activemq-core
    5.4.2
    
        
            commons-logging
            commons-logging
        
        
            commons-logging
            commons-logging-api
        
    



Spring配置文件(ActiveMQ):



    JMS简单应用配置
    
    
        
        
        
        
    
    
    
        
        
        
    
    
    
        
        
    
    
    
        
        
    
    
    
        
        
    
    
    
    
    
        
        
        
        
        
        
        
        
        
        
        
    
    
        
        
        
        
    


自定义的消息监听:

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
public class TriggerReciveListener implements MessageListener {
    private static final Logger LOG = LoggerFactory
            .getLogger(TriggerReciveListener.class);
                      
    @Autowired
    JMSSender jmsSender;
    @Override
    public void onMessage(Message message) {
        LOG.info("接收到信息,进行业务处理。");
        ObjectMessage message2 = (ObjectMessage) message;
        // 业务处理
    }
}



自定义的消息发送:

import java.io.Serializable;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component;
@Component
public class JMSSender {
                 
    private static final Logger LOG = LoggerFactory
            .getLogger(JMSSender.class);
    @Autowired
    JmsTemplate myJmsTemplate;
    /**
     * 自定义的消息推送
     * @param responseQueueName  队列名称
     * @param object 发送内容
     */
    public void send(String responseQueueName,final Object object) {
        LOG.info("发送消息到MQ"+responseQueueName);
        MessageCreator messageCreator = new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                ObjectMessage message = session.createObjectMessage();
                             
                message.setObject((Serializable) object);
                return message;
            }
        };
        myJmsTemplate.send(responseQueueName, messageCreator);
    }
                 
    public void setJmsTemplate(JmsTemplate jmsTemplate) {
        this.myJmsTemplate = jmsTemplate;
    }
}