SpringBoot2.0之整合RabbitMQ
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SpringBoot2.0之整合RabbitMQ,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5547字,纯文字阅读大概需要8分钟。
内容图文
案例:
Springboot 对RabbitMQ的支持
公共的pom:
<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>com.toov5</groupId> <artifactId>RabbitMQProject</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <!-- springboot-web组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 添加springboot对amqp的支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <!--fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.49</version> </dependency> </dependencies> </project>
Producer:
controller
package com.toov5.rabbitMQ.comtroller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.toov5.rabbitMQ.Producer.FanoutProducer; @RestController public class MemberProcuderController { @Autowired private FanoutProducer fanoutProducer; @RequestMapping("/sendMsg") public String sendMsg(String queueName) { fanoutProducer.send(queueName); return "success"; } }
config
package com.toov5.rabbitMQ.config; import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.FanoutExchange; import org.springframework.amqp.core.Queue; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; @Component public class FanoutConfig { // 邮件队列 private String FANOUT_EMAIL_QUEUE = "fanout_eamil_queue"; // 短信队列private String FANOUT_SMS_QUEUE = "fanout_sms_queue"; // 短信队列private String EXCHANGE_NAME = "fanoutExchange"; // 定义队列 //邮件队列 @Bean public Queue fanoutEmailQueue() { returnnew Queue(FANOUT_EMAIL_QUEUE); } //短信队列 @Bean public Queue fanoutSMSQueue() { returnnew Queue(FANOUT_SMS_QUEUE); } //定义交换机 @Bean public FanoutExchange fanoutExchange() { returnnew FanoutExchange(EXCHANGE_NAME); } //队列和交换机绑定 参数名称和定义好的方法名称一致 @Bean Binding bindingExchangeEamil(Queue fanoutEmailQueue, FanoutExchange fanoutExchange) { return BindingBuilder.bind(fanoutEmailQueue).to(fanoutExchange); } @Bean Binding bindingExchangeSMS(Queue fanoutSMSQueue, FanoutExchange fanoutExchange) { return BindingBuilder.bind(fanoutSMSQueue).to(fanoutExchange); } }
producer
package com.toov5.rabbitMQ.Producer; import java.util.Date; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class FanoutProducer { @Autowired private AmqpTemplate amqpTemplate; public void send(String queueName) { System.out.println("queueName"+queueName); String mString="msg"+new Date(); amqpTemplate.convertAndSend(queueName,mString); //发送消息 } }
yml:
spring: rabbitmq: ####连接地址 host: 192.168.91.6 ####端口号 port: 5672 ####账号 username: admin ####密码 password: admin ### 地址 主机独立的virtualhost virtual-host: /admin_toov5 server: port: 8081
启动类:
package com.toov5.rabbitMQ; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AppMemberProducer { public static void main(String[] args) { SpringApplication.run(AppMemberProducer. class , args); } }
Producer启动时候不会创建这个交换机哦,懒加载
启动后:
Consumer:
EmailConsumer:
package com.toov5.msg.email; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component // 注册到Spring 容器里面 @RabbitListener(queues="fanout_eamil_queue") //监听publicclass EmailConsumer { @RabbitHandler //表示接收消息publicvoid process(String mString) { System.out.println("邮件消费者获取生产者消息msg"+mString); } }
SMSConsumer:
package com.toov5.msg.SMS; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component // 注册到Spring 容器里面 @RabbitListener(queues="fanout_sms_queue") //监听publicclass SMSConsumer { @RabbitHandler //表示接收消息publicvoid process(String mString) { System.out.println("短信消费者获取生产者消息msg"+mString); } }
启动类:
package com.toov5.msg; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AppMsgConsumer { public static void main(String[] args) { SpringApplication.run(AppMsgConsumer. class , args); } }
yml:
spring: rabbitmq: ####连接地址 host: 192.168.91.6 ####端口号 port: 5672 ####账号 username: admin ####密码 password: admin ### 地址 主机独立的virtualhost virtual-host: /admin_toov5
原文:https://www.cnblogs.com/toov5/p/9946037.html
内容总结
以上是互联网集市为您收集整理的SpringBoot2.0之整合RabbitMQ全部内容,希望文章能够帮你解决SpringBoot2.0之整合RabbitMQ所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。