我是靠谱客的博主 迷路野狼,最近开发中收集的这篇文章主要介绍Springboot2模块系列:RabbitMQ1 配置信息2 配置队列信息3 生产者与消费者4 生产者接口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1 配置信息

1.0 pom.xml

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

1.2 application-dev.xml

spring:
rabbitmq:
host: localhost
port: 5672
username: admin
password: admin
publisher-confirms: true 
publisher-returns: true
listener:
direct:
acknowledge-mode: manual
simple:
acknowledge-mode: manual

2 配置队列信息

package com.company.web.config;
import org.springframework.context.annotation.Configuration;
// import com.rabbitmq.client.AMQP.Queue;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.context.annotation.Bean;
/**
* @uthor xindaqi
* @description 创建RabbitMQ消息队列
* @since 2020-06-29
*/
@Configuration
public class RabbitMQConfig {
@Bean
public Queue queueTest(){
return new Queue("testqueue");
}
}

3 生产者与消费者

3.1 生产者

package com.company.web.service;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;
/**
* @author xindaqi
* @description 消息生产者
* @since 2020-06-29
*/
@Component
public class MQSendService {
@Autowired
private AmqpTemplate template;
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(Map params){
System.out.println("开始发送消息");
rabbitTemplate.convertAndSend("testqueue", JSON.toJSONString(params));
}
}

3.2 消费者

package com.company.web.service;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.core.Message;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.amqp.RabbitProperties.Cache.Channel;
import org.springframework.stereotype.Component;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
/**
* @author xindaqi
* @description 消息消费者
* @since 2020-06-29
*/
@Component
public class MQReceiveService {
@Autowired
private AmqpTemplate template;
@Autowired
private RabbitTemplate rabbitTempalte;
@RabbitListener(queues="testqueue")
public String receive(String msg){
System.out.println("msg:"+msg);
//TODO 写入数据库等其他操作
return msg;
}
}

4 生产者接口

package com.company.web.controller;
import java.util.Map;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.beans.factory.annotation.Autowired;
import com.company.web.service.MQSendService;
/**
* @author xindaqi
* @description 生产者接口,调用接口,生成数据
* @since 2020-06-29
*/
@CrossOrigin(origins="*", maxAge=3600)
@RestController
@RequestMapping("/api/mq")
public class RabbitMQController {
@Autowired
private MQSendService mqSendService;
@RequestMapping(value="/send", method=RequestMethod.POST)
public String sendMsg(@RequestBody Map params){
mqSendService.send(params);
return "OK";
}
}

【参考文献】
[1]https://my.oschina.net/u/2364788/blog/2875902
[2]https://www.cnblogs.com/kingsonfu/p/10599608.html
[3]https://www.jianshu.com/p/3411feeb115f
[4]https://www.cnblogs.com/chengxy-nds/p/13217828.html
[5]https://blog.csdn.net/Weixiaohuai/article/details/82790785
[]https://blog.csdn.net/ztx114/article/details/78410727

最后

以上就是迷路野狼为你收集整理的Springboot2模块系列:RabbitMQ1 配置信息2 配置队列信息3 生产者与消费者4 生产者接口的全部内容,希望文章能够帮你解决Springboot2模块系列:RabbitMQ1 配置信息2 配置队列信息3 生产者与消费者4 生产者接口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部