spring boot整合activemq消息中间件

spring boot整合activemq消息中间件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>zxf-active</groupId>
  <artifactId>zxf-active</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  
   <parent>  
          <groupId>org.springframework.boot</groupId>  
             <artifactId>spring-boot-starter-parent</artifactId>  
            <version>1.5.2.RELEASE</version>  
            <relativePath/> <!-- lookup parent from repository -->  
         </parent>  
       
         <properties>  
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
             <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
             <java.version>1.8</java.version>  
         </properties>         
         <dependencies>  
             <dependency>  
                 <groupId>org.springframework.boot</groupId>  
                 <artifactId>spring-boot-starter-activemq</artifactId>  
             </dependency> 
               <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
       
             <dependency>  
                 <groupId>org.springframework.boot</groupId>  
                 <artifactId>spring-boot-starter-test</artifactId>  
                 <scope>test</scope>  
             </dependency>  
         </dependencies>  
         <build>  
             <plugins>  
                 <plugin>  
                     <groupId>org.springframework.boot</groupId>  
                     <artifactId>spring-boot-maven-plugin</artifactId>  
                 </plugin>  
             </plugins>  
         </build>
  
</project>
package com.newtouch.active.service;

import javax.jms.Destination;

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

@Service("JmsProducer")
public class JmsProducer {
    
     @Autowired // 也可以注入JmsTemplate,JmsMessagingTemplate对JmsTemplate进行了封装  
     private JmsTemplate jmsTemplate;  
     // 发送消息,destination是发送到的队列,message是待发送的消息  
     public void sendMessage(Destination destination, final String message){  
             jmsTemplate.convertAndSend(destination, message);  
     }  
}
package com.newtouch.active.service;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

@Component
public class JmsConsumer {
     // 使用JmsListener配置消费者监听的队列,其中text是接收到的消息  
    @JmsListener(destination = "mytest.queue")
    public void receiveQueue(String text) {
        System.out.println("Consumer收到的报文为:"+text); 
    }  
}
package com.newtouch.active.controller;

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

import javax.jms.Destination;

import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.newtouch.active.service.JmsProducer;

@RestController
@RequestMapping("/active")
public class ActiveController {

    @Autowired
    private JmsProducer jmsProducer;
    
    @RequestMapping("/test")
    private Map<String, Object> test(){
        Map<String, Object> resultMap = new HashMap<String, Object>();
        
        Destination destination = new ActiveMQQueue("mytest.queue");
        for(int i=0; i<100; i++){
            jmsProducer.sendMessage(destination, "myname is chhliu!!!");
        }  
        
        resultMap.put("code", "1");
        return resultMap;
    }
     
    
}
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.in-memory=true
spring.activemq.pool.enabled=false

spring.application.name=SERVICE-ACTIVE
server.port=8090
server.contextPath=/

成功打印消息

posted @ 2018-06-20 10:44  随风而逝,只是飘零  阅读(667)  评论(0编辑  收藏  举报