Springboot 2.2.1 与activeMq 集成2 queue 消息

Posted 码代码的小表哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot 2.2.1 与activeMq 集成2 queue 消息相关的知识,希望对你有一定的参考价值。

生产者代码

package com.active.mq.service;

import javax.jms.Destination;
/**
 * 消息生产
 *
 * @author kql
 *
 */
public interface ProducerService {
    /**
     * 使用指定消息队列发送
     * 
     * @param destination
     * @param message
     */
    void sendMsg(Destination destination, final String message);


    /**
     * 使用已经配置好的消息队列发送消息  就是启动类配置的队列
     * @param message
     */
     void sendMessage(final String message);


    
}

 

package com.active.mq.service.impl;

import com.active.mq.service.ProducerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Service;

import javax.jms.Destination;
import javax.jms.Queue;
import javax.jms.Topic;

/**
 * 消息生产实现类
 *
 * @author kql
 */
@Service
public class ProducerServiceImpl implements ProducerService {
    @Autowired
    private JmsMessagingTemplate jmsTemplate;

    @Autowired
    private Queue queue;

    @Override
    public void sendMsg(Destination destination, String message) {

        jmsTemplate.convertAndSend(destination, message);
    }

    @Override
    public void sendMessage(String message) {
        jmsTemplate.convertAndSend(this.queue, message);

    }




}

 

package com.active.mq.controller;

import com.active.mq.service.ProducerService;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.jms.Destination;

/**
 * 消息生产类
 * @author  kql
 */
@RestController
public class OrderController {
    @Autowired
    private ProducerService producerService;

    @GetMapping("/order")
    private String order(String msg) {
        Destination destination = new ActiveMQQueue("order.queue");
        producerService.sendMsg(destination, msg);
        return "order";
    }

    @GetMapping("common")
    public String common(String msg){
        producerService.sendMessage(msg);
        return "common";
    }

   


}

 

 

//消费者监听

 

package com.active.mq.listener;

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

/**
 * 监听
 * @author kql
 */
@Component
public class OrderConsumer {
    /**
     * 监听指定消息队列
     *
     * 队列为: order.queue  的消息
     *
     *
     * @param text
     */
    @JmsListener(destination = "order.queue")
    public void receiveQueue(String text) {
        System.out.println("[ OrderConsumer收到的报文 : " + text + " ]");
    }

    /**
     * 监听指定消息队列
     *
     * 队列为: test.queue 的消息
     *
     *
     * @param text
     */
    @JmsListener(destination = "test.queue")
    public void receiveQueue1(String text) {
        System.out.println("[ OrderConsumer1收到的报文 : " + text + " ]");
    }

}

//两种生产测试

http://localhost:8080/common?msg=111

 

http://localhost:8080/order?msg=222

 

 

 

以上是关于Springboot 2.2.1 与activeMq 集成2 queue 消息的主要内容,如果未能解决你的问题,请参考以下文章

基于 SpringBoot 的个人博客系统设计与实现(含论文与程序代码).rar

Docker实现SpringBoot项目的快速构建

Docker实现SpringBoot项目的快速构建

Docker实现SpringBoot项目的快速构建

Docker实现SpringBoot项目的快速构建

springboot微服务Lucence实现Mysql全文检索