springboot整合RabbitMQ时,写个配置类定义RabbitMQ队列等信息,避免出现Failed to declare queue(s)
测试如下
1.创建个maven空project
2.使用springboot 新建producer模块和consumer模块
pom 相关依赖如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit-test</artifactId>
<scope>test</scope>
</dependency>
producer写在测试方法中即可
@SpringBootTest
class MqProducerApplicationTests {
@Autowired
private RabbitTemplate rabbitTemplate; // 此处爆红可忽略
@Test
void contextLoads() {
}
@Test
void testBaseSendMsg(){
String queueName = "simple.queue";
String message = "hello message";
rabbitTemplate.convertAndSend(queueName, message);
}
}
consumer模块中新建consumer包,建立Consumer类
@Component
public class Consumer {
@RabbitListener(queues = "simple.queue")
public void consumerSimpleMessage(String message){
System.out.println(message);
}
}
consumer模块中新建config包,建立RabbitMqConfig类
需要提前创建RabbitMqConfig配置类,避免出现 Failed to declare queue(s)错误
@Configuration
public class RabbitMqConfig {
@Bean
public Queue simpleQueue(){
return new Queue("simple.queue");
}
}
3.测试
启动rabbitMq服务
启动consumer模块
运行producer内生产消息的测试方法
即可在consumer控制台看到消息的消费