一、简介:
spring Boot使用了这么久,套路差不多摸清楚了。Spring Boot与其他组件进行整合,无非就是加入pom依赖,接着配置一些基本信息,然后就可以使用相关注解进行开发了。下面通过一个案例来了解整个整合过程。
二、案例:
1、引入依赖:
<!-- rabbitmq依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2、RabbitMQ配置:
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
3、编写生产者:
生产者用来生产消息并进行发送。需要用到
RabbitTemplate
。
RabbitTemplate
是发送消息的关键类,
convertAndSend
方法可以指定消息发送的交换器、路由键、消息内容等。
@Component
public class Producer {
@Autowired
RabbitTemplate rabbitTemplate;
public void produce() {
String message = new Date() + "Beijing";
System.out.println("生产者生产消息=====" + message);
rabbitTemplate.convertAndSend("rabbitmq_queue", message); //将消息发送到指定的消息队列中
}
}
4、编写消费者:
消费者消费生产者发送的消息。实现消费者主要用到注解
@RabbitListener
。
@RabbitListener
是一个功能强大的注解。这个注解里面包含@QueueBinding、@Queue、@Exchange等注解,直接通过这个组合注解一次性搞定多个交换机、绑定、路由、并且配置监听功能等。
@Component
public class Consumer {
/*
监听 rabbitmq_queue 这个队列,如果该队列有新消息过来,则获取
*/
@RabbitHandler
@RabbitListener(queuesToDeclare = @Queue("rabbitmq_queue"))
public void process(String message) {
System.out.println("消费者消费消息=====" + message);
}
}
5、测试:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {
@Autowired
Producer producer;
@Test
public void contextLoads() {
producer.produce();
}
}
6、测试结果:
操作之后可以在测试控制台看到生产者消息发送成功,在该工程的控制台看到消息消费成功。
访问RabbitMQ控制面板也会看到有消息。
转自:https://www.cnblogs.com/sgh1023/archive/2004/01/13/11256273.html