舜元建设集团官方网站,asp.net 网站开发项目化教程,seo优化营销专员招聘,网络设计教程这目录 一、添加依赖二、配置文件中添加RabbitMQ访问配置三、消息生产者代码四、消息消费者代码五、验证参考资料 一、添加依赖 !--AMQP依赖#xff0c;包含RabbitMQ--dependencygroupIdorg.springframework.boot/groupIdartifactIds… 这目录 一、添加依赖二、配置文件中添加RabbitMQ访问配置三、消息生产者代码四、消息消费者代码五、验证参考资料 一、添加依赖 !--AMQP依赖包含RabbitMQ--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependency!-- 引入knife4j-spring-ui包 /doc.html--dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-spring-boot-starter/artifactIdversion3.0.3/version/dependency二、配置文件中添加RabbitMQ访问配置
spring.rabbitmq.host192.168.0.104
spring.rabbitmq.port5672
spring.rabbitmq.virtual-host/
spring.rabbitmq.usernameadmin
spring.rabbitmq.passwordadmin123三、消息生产者代码
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;Api(tags 生产者服务)
RestController
public class ProducerController {Autowiredprivate RabbitTemplate rabbitTemplate;ApiOperation(value 基本消息模型)PostMapping(/testHello)public String testHello() {rabbitTemplate.convertAndSend(hello,hello world);return ok;}ApiOperation(value work消息模型)PostMapping(/testWork)public String testWork() {for (int i 0; i 10; i) {rabbitTemplate.convertAndSend(work,hello work!);}return ok;}ApiOperation(value 订阅模型-Fanout 广播模式)PostMapping(/testFanout)public String testFanout() {rabbitTemplate.convertAndSend(logs,,这是日志广播);return ok;}ApiOperation(value 订阅模型-Direct)PostMapping(/testDirect)public String testDirect() {rabbitTemplate.convertAndSend(directs,error,error 的日志信息);return ok;}ApiOperation(value 订阅模型-Topic)PostMapping(/testTopic)public String testTopic() {rabbitTemplate.convertAndSend(topics,user.save.findAll,user.save.findAll 的消息);return ok;}
}
四、消息消费者代码
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;Component
public class SpringRabbitListener {//基本消息模型RabbitListener(queuesToDeclare Queue(hello))public void receive(String message) {System.out.println(message message);}//work消息模型RabbitListener(queuesToDeclare Queue(work))public void workReceive1(String message) {System.out.println(workReceive1 message message);}//work消息模型RabbitListener(queuesToDeclare Queue(work))public void workReceive2(String message) {System.out.println(workReceive2 message message);}//订阅模型-Fanout 广播模式RabbitListener(bindings QueueBinding(value Queue, exchange Exchange(namelogs,type fanout)))public void fanoutReceive(String message) {System.out.println(fanoutReceive message message);}//订阅模型-DirectRabbitListener(bindings {QueueBinding(value Queue(),key{info,error},exchange Exchange(type direct,namedirects))})public void directReceive(String message) {System.out.println(directReceive message message);}//订阅模型-TopicRabbitListener(bindings {QueueBinding( value Queue,key {user.*},exchange Exchange(type topic,name topics))})public void topicReceive1(String message) {System.out.println(topicReceive1 message message);}//订阅模型-TopicRabbitListener(bindings {QueueBinding(value Queue,key {user.#},exchange Exchange(type topic,name topics))})public void topicReceive2(String message) {System.out.println(topicReceive2 message message);}}
五、验证
浏览器输入ip:8080/doc.html 对接口逐个进行测试
参考资料
RabbitMQ详解RabbitMQ五种消息模型