Tabla de contenido
2. Crear colas y máquinas virtuales
Cuarto, escriba a los consumidores
1. Construya el proyecto
Introducir dependencias relacionadas y escribir archivos de configuración
Archivo de configuración:
spring: rabbitmq: host: 192.168.66.130 port: 5672 username: root password: root virtual-host: / #日志格式 logging: pattern: console: '%d{HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n'
Dependencias relacionadas:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit-test</artifactId> <scope>test</scope> </dependency> </dependencies>
2. Crear colas y máquinas virtuales
Debe tenerse en cuenta que la creación de máquinas virtuales y colas está en la clase de configuración, y el tipo de conmutador cambia según el tipo de valor de retorno
package com.example.demo; import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { //交换机名字 private final String exchange_name="exchange_one"; //队列名字 private final String queue_name="queue_one"; //创建交换机 @Bean("bootexchange") public Exchange getexchange(){ //想换交换机类型 //返回值可以写成DirectExchange //TopicExchange等等 return ExchangeBuilder .topicExchange(exchange_name)//交换机名字 .durable(true)//是否持久化 .build(); } //创建队列 @Bean("bootqueue") public Queue getqueue(){ return new Queue(queue_name);//队列名 } //交换机绑定队列 @Bean public Binding bingmessagequeue(@Qualifier("bootexchange") Exchange exchange, @Qualifier("bootqueue") Queue queue){ return BindingBuilder .bind(queue) .to(exchange) .with("#.mess.#") .noargs(); } }
3. Escribe al productor
El envío de información del productor no tiene por qué ser tan engorroso, puede utilizar directamente las herramientas proporcionadas
package com.example.demo; import org.junit.jupiter.api.Test; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class TestProducer { //注入rabbittemplate工具类 @Autowired private RabbitTemplate rabbitTemplate; @Test public void send(){ //参数一是交换机 //参数二是路由键 //参数三表示要发送的信息 rabbitTemplate.convertAndSend("exchange_one","mess","我要开始发送信息了"); } }
Cuarto, escriba a los consumidores
El código del consumidor no debe estar en el mismo proyecto que el del productor.
package com.example.rabbitmq2; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component public class consumer { @RabbitListener(queues ="queue_one") public void listen(String m){ System.out.println("接收到的信息="+m); } }