Spring+ActiveMQ整合Demo

新建web工程,导入jar包到lib目录

Spring+ActiveMQ整合Demo_第1张图片,然后buildpath。

整体结构如下:

Spring+ActiveMQ整合Demo_第2张图片

创建spring.xml



	
	
		
		
          
         
	

	
		
	

	
		
		
		
		
	
	
	
	
	
		
		
		
	

spring-mvc.xml




	
	

	
	
	
	
	
		
		
		
	

SendMessageController

package com.jms.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import com.jms.message.MessageSender;

/**
 * 
 * ClassName: SendMessageController 
* Function: 发送消息Controller
* date: 2018年4月26日 下午9:41:34
* * @author Jerry * @version */ @Controller public class SendMessageController extends MultiActionController { private static final Logger logger = Logger.getLogger(SendMessageController.class); @Autowired private MessageSender messageSender; public MessageSender getMessageSender() { return messageSender; } public void setMessageSender(MessageSender messageSender) { this.messageSender = messageSender; } /** * * sendMessage: 发送消息
* * @author Jerry * @param req * @param resp * @return */ @RequestMapping("/send") public ModelAndView sendMessage(HttpServletRequest req,HttpServletResponse resp){ Map map = new HashMap<>(); String message = req.getParameter("message"); messageSender.sendMessage(message); return new ModelAndView("success",map); } }

ReceiveMessageListener

package com.jms.listener;

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

import org.apache.log4j.Logger;

/**
 * 
 * ClassName: ReceiveMessageListener 
* Function: 订阅者监听
* date: 2018年4月26日 下午9:42:21
* * @author Jerry * @version */ public class ReceiveMessageListener implements MessageListener{ private static final Logger logger = Logger.getLogger(ReceiveMessageListener.class); @Override public void onMessage(Message message) { if (message instanceof TextMessage) { TextMessage text = (TextMessage) message; try { logger.info("收到的消息:"+text.getText()); } catch (Exception e) { e.printStackTrace(); } } } }
MessageSender
package com.jms.message;

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

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

/**
 * 
 * ClassName: MessageSender 
* Function: 发布者
* date: 2018年4月26日 下午9:42:43
* * @author Jerry * @version */ @Service public class MessageSender { private static final Logger logger = Logger.getLogger(MessageSender.class); @Autowired private JmsTemplate jmsTemplate; public void setJmsTemplate(JmsTemplate jmsTemplate) { this.jmsTemplate = jmsTemplate; } public void sendMessage(String message) { logger.info("发送的信息:"+message); jmsTemplate.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { TextMessage textMessage = session.createTextMessage(message); return textMessage; } }); } }

web.xml



	
	
		contextConfigLocation
		classpath:resources/spring.xml
	

	
		encodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		encodingFilter
		/*
	
	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
		org.springframework.web.util.IntrospectorCleanupListener
	
	
	
		springMvc
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:resources/spring-mvc.xml
		
		1
	
	
		springMvc
		*.do
	
	
		index.jsp
	
	
	
		900
	

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<%  
    String path = request.getContextPath();  
    String basePath = request.getScheme() + "://"  
            + request.getServerName() + ":" + request.getServerPort()  
            + path + "/";  
%>  
  
  
  
      
          
  
        My JSP 'index.jsp' starting page  
          
          
          
          
          
        
      
       

  
           
  
                  
                      
                          
                      
                      
                          
                          
                      
                      
                          
                      
               
  
                            消息发送控制台  
                       
  
                            消息内容:  
                       
  
                              
                       
  
                              
                                  
                              
                       
  
           
  
       
  
      

  

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<%  
    String path = request.getContextPath();  
    String basePath = request.getScheme() + "://"  
            + request.getServerName() + ":" + request.getServerPort()  
            + path + "/";  
%>  
  
  
  
      
          
  
        My JSP 'index.jsp' starting page  
          
          
          
          
          
          
      
  
      
       

  
           
  
                  
                      
                          
                      
                      
                          
                      
                      
                          
                      
               
  
                            消息发送报告  
                       
  
                            状态:发送成功  
                       
  
                            返回  
                       
  
           
  
       
  
      

  

首页如下:

Spring+ActiveMQ整合Demo_第3张图片

发送成功后:

Spring+ActiveMQ整合Demo_第4张图片

再看下activemq管理中心

默认登陆账号密码:admin

Spring+ActiveMQ整合Demo_第5张图片


你可能感兴趣的:(Spring+ActiveMQ整合Demo)