spring+activeMq的配置以及发送和接收

1.发送目录结构

spring+activeMq的配置以及发送和接收_第1张图片

pom.xml配置文件


		4.1.3.RELEASE
		5.7.0
		5.12.1
		1.2
		2.5
		2.0
		3.3.2
		3.3
		1.8
	
	
	
		
		
			org.springframework
			spring-context
			${spring.version}
		
		
			org.springframework
			spring-beans
			${spring.version}
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		
		
			org.springframework  
			spring-oxm
			${spring.version}	
  		  
		
			com.alibaba
			dubbo
			
				
					org.springframework
					spring
				
			
			2.5.3
		
		
			org.springframework
			spring-jdbc
			${spring.version}
		
		
			org.springframework
			spring-aspects
			${spring.version}
		
		
			org.springframework 
			spring-tx
			${spring.version} 
		  
	     
	        org.springframework  
	        spring-jms
	        ${spring.version}
	    
		
			org.springframework
			spring-orm
			3.1.4.RELEASE
		
		 
			 org.springframework 
			 spring-context-support
			${spring.version}
		

		
		
		  
	        org.apache.activemq  
	        activemq-core
	        ${activemq-core.version}
	     
	      
	        org.apache.activemq
	        activemq-pool
	         ${activemq-pool.version}  
	    
	    

	    	

		
			javax.servlet
			jsp-api
			${jsp-api.version}
			provided
		

		
			commons-dbcp
			commons-dbcp
			1.4
		

		
		
			org.apache.commons
			commons-lang3
			${commons-lang3.version}
		

		
			commons-net
			commons-net
			${commons-net.version}
		

		
			com.alibaba
			fastjson
			1.1.41
		 
	
	
	
		
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				3.1
				
					1.7
					1.7
					UTF-8
				
			
			
			
				org.apache.tomcat.maven
				tomcat7-maven-plugin
				2.2
				
					8080
					/
				
			
		
	

 

web.xml文件配置


	
		contextConfigLocation
		
			classpath:spring-activemq.xml
		
	
	
		org.springframework.web.context.ContextLoaderListener
	
		
	
		springMVC
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:spring-mvc.xml
		
		1
	
	
		springMVC
		/*
	

spring-mvc.xml



		
	
	
	
	
	
	
	
	
		
		
	

	
	
		
			
		    	
			
  		
	

 

spring-activemq.xml配置文件



       
	
	
		
		
		
	
	
	
    
        
        
            queue
        
    
	
	
	
		
		
	
	
	
	
		
		
		
		  
        
		 
			true
		
	
	

ProducerService

/**
 * @Description:TODO
 * @author:lijun
 * @date:2018年12月19日 上午9:14:47
 * @version V1.0
 */
package service;

import javax.jms.Destination;
/**
 * 生产者接口
 * create by lijun on 2018年12月19日
 * 
 */
public interface ProducerService {
	
	/**
     * 指定消息目的地的发送方法
     * create by lijun on 2018年12月19日
     */
	public void sendMessage(Destination destination,final String msg);
	
	/**
     * 默认消息目的地的方法
     * create by lijun on 2018年12月19日
     */
	public void sendMessage(final String msg);
	
}

ProducerServiceImpl

/**
 * @Description:TODO
 * @author:lijun
 * @date:2018年12月19日
 * 
 */
package service.impl;

import java.util.logging.Logger;

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

import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;

import service.ProducerService;

/**
 * 生产者实现类
 * create by lijun on 2018年12月19日
 * 
 */
@Service
public class ProducerServiceImpl implements ProducerService{
	
	private static Logger loger = Logger.getLogger(ProducerServiceImpl.class.getName());
	
	
    @Resource(name="jmsTemplate")
    private JmsTemplate jmsTemplate;

    /**
     * 指定消息目的地的发送方法
     * create by lijun on 2018年12月19日
     */
    public void sendMessage(Destination destination,final String msg){
        System.out.println(Thread.currentThread().getName()+" 向队列"+destination.toString()+"发送消息---------------------->"+msg);
        loger.info(Thread.currentThread().getName()+" 向队列"+destination.toString()+"发送消息---------------------->"+msg);
        jmsTemplate.send(destination,new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                return session.createTextMessage(msg);
            }
        });
    }
    
    /**
     * 默认消息目的地的方法
     * create by lijun on 2018年12月19日
     */
    public void sendMessage(final String msg){
    	Destination destination = jmsTemplate.getDefaultDestination();
    	System.out.println(destination);
        System.out.println(Thread.currentThread().getName()+" 向队列"+destination+"发送消息---------------------->"+msg);
        System.out.println("2222");
        loger.info(Thread.currentThread().getName()+" 向队列"+destination+"发送消息---------------------->"+msg);
        jmsTemplate.send(new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                return session.createTextMessage(msg);
               
            }
        });
     }

}

MessageController

/**
ha * @Description:
 * @author:lijun
 * @date:2018年12月18日 下午6:30:51
 * @version V1.0
 */
package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import service.ProducerService;

/**
 * @Description:发送消息的controller
 * @author: lijun 
 * @date: 2018年12月18日下午6:30:51
 */
@Controller
public class MessageController {
	/**
	 * 注入ProducerService
	 */
	@Autowired(required=false)
    ProducerService producerServiceImpl;
	
	/**
	 * 
	 * create by lijun on 2018年12月19日
	 * @Description:发送消息,调用service层的sendMessage()方法
	 * @param msg
	 */
	@ResponseBody
	@RequestMapping(value="/sendMessage",method=RequestMethod.GET)
    public void send(String msg) {
		System.out.println("发送了");
        //msg="helloActiveMq";
		producerServiceImpl.sendMessage(msg);
        
    }

}

二.接收目录结构

spring+activeMq的配置以及发送和接收_第2张图片

springactivemq.xml配置文件



       
	
	
		
		
		
	
	
	
	
		
		
	
	
	
    
        
        
            queue
        
    

	
	
		
		
		
		  
        
		 
			true
		
	
	
	
    
    
    
        
        
        
    

ConsumerService

/**
 * @Description:TODO
 * @author:lijun
 * @date:2018年12月19日
 * 
 */
package service;

import javax.jms.TextMessage;

/**
 * 消费接口
 * create by lijun on 2018年12月19日
 * 
 */
public interface ConsumerService {
	/**
	 * 
	 * create by lijun on 2018年12月19日
	 * @Description:接收发送端的消息
	 * @return TextMessage
	 */
	public TextMessage receive();
}

ConsumerServiceImpl

/**
 * @Description:TODO
 * @author:lijun
 * @date:2018年12月19日
 * 
 */
package service.impl;

import javax.annotation.Resource;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.TextMessage;

import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Service;

import service.ConsumerService;

/**
 * 消费接口的实现类
 * create by lijun on 2018年12月19日
 * 
 */
@Service
public class ConsumerServiceImpl implements ConsumerService {
	
	/**
	 * 消息目的地
	 * 通过name自动装配
	 */
    @Resource(name = "demoQueueDestination")
    Destination destination;
    
    /**
     * 
     * 通过name自动装配
     * 注入JmsTemplate类型的属性
     */
    @Resource(name="jmsTemplate")
    JmsTemplate jmsTemplate;

	/**
	 * 接收消息
	 * create by lijun on 2018年12月19日
	 * @return TextMessage
	 */
	@Override
	public TextMessage receive() {
		
		 TextMessage textMessage = (TextMessage) jmsTemplate.receive(destination);
	        try{
	            System.out.println("从队列" + destination+ "收到了消息:\t"
	                    + textMessage.getText().toString());
	        } catch (JMSException e) {
	            e.printStackTrace();
	        }
	        return textMessage;
	}

}

ReceiveController

/**
 * @Description:TODO
 * @author:lijun
 * @date:2018年12月19日
 * 
 */
package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import service.ConsumerService;

/**
 * 接收消息的Controller
 * create by lijun on 2018年12月19日
 * 
 */
public class ReceiveController {
	
	/**
	 * 自动装配
	 * 注入ConsumerService类型属性
	 */
	@Autowired(required=false)
    ConsumerService consumerServiceImpl;
	/**
	 * 
	 * create by lijun on 2018年12月19日
	 * @Description:接收消息,映射路径是/receiveMessage
	 */
	@ResponseBody
	@RequestMapping(value="/receiveMessage",method=RequestMethod.GET)
    public void receive() {
		
        consumerServiceImpl.receive();

    }
}

 

你可能感兴趣的:(spring+activeMq的配置以及发送和接收)