1.pom依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>
2.application.properties配置加入rabbitmq相关配置。
RabbitAutoConfiguration
类是其自动加载配置类。
# rabbitmq相关配置 spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest
3.关于配置,以上两步就完成了( Springboot
真的太方便了,写代码都是愉悦的)。正常使用时,若作为一个消费者,我们会配置一个接收队列,这里为了示例,直接以最小配置来演示下。
配置一个名为 okong
的队列
@Configuration public class RabbitConfig { /** * 定义一个名为:oKong 的队列 * @return */ @Bean public Queue okongQueue() { return new Queue("okong"); } }
配置队列处理类,这里的队列就是上面配置的队列名称。:
Consumer.java
@Component //@RabbitListener 监听 okong 队列 @RabbitListener(queues = "okong") @Slf4j public class Consumer { /** * @RabbitHandler 指定消息的处理方法 * @param message */ @RabbitHandler public void process(String message) { log.info("接收的消息为: {}", message); } }
编写消息发送类,这里直接写成api方法,方便调试。
DemoController.java
/** * 简单示例 发送和接收队列消息 * @author oKong * */ @RestController public class DemoController { //AmqpTemplate接口定义了发送和接收消息的基本操作,目前spring官方也只集成了Rabbitmq一个消息队列。。 @Autowired AmqpTemplate rabbitmqTemplate; @GetMapping("/send") public String send(String msg) { //发送消息 rabbitmqTemplate.convertAndSend("okong", msg); return "消息:" + msg + ",已发送"; } }
4.启动应用,正常配置成功,在 Rabbitmq
的控制台,是可以看见连接对象的。说明已经正常启动了
5.访问: http://127.0.0.1:8080/send?msg=hello,rabbitmq , 在控制台就可以看见消费者已经消费到此条消息了: