简简单单spring-boot整合RabbitMQ

作者: 虾游于海 | 来源:发表于2017-12-30 00:39 被阅读123次

RabbitMQ是比较常用的AMQP实现,这篇文章是一个简单的Spring boot整合RabbitMQ的教程。

  • 导入依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  • 修改application.yml
    不需要定义复杂的ConnectionFactory,只需要在配置文件中指定连接信息即可
spring:
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: username
    password: password
    virtual-host: /
  • 配置rabbitmq ,增加一个队列
@Configuration
public class Aqueue {
    @Bean
    public Queue queue() {
        return new Queue("good");
    }

}
  • 定义一个生产者.
    当启用activemq之后,会自动创建一个AmqpTemplate ,可以被注入到任何需要的地方,我们可以通过这个AmqpTemplate发送消息到MQ中
/**
 * 定义一个生产者
 * @author LiDong
 */
@RestController
@RequestMapping("/test")
public class SendController {
    @Autowired
    private AmqpTemplate template;

    @GetMapping
    public String testSend() {
        // 使用AmqpTemplate发送消息
        template.convertAndSend("good", "good");
        return "success";
    }
}
  • 定义消费者,通过指定RabbitListener(queues='good')指定消费的队列
@Component
public class Consumer {
    /**
     * 定义一个消费者
     * @param message
     */
    @RabbitListener(queues = "good")
    public void handler(String message) {
        System.out.println("recive message from " + message);
    }
}

启动测试,在浏览器中输入 http://localhost:8080/test即可发送一条消息到队列中。 该对列可以被消费者处理

完整的示例代码,参见 github
另外,Spring Boot整合ActiveMQ也非常简单,参见Spring Boot 整合ActiveMQ的过程

相关文章

网友评论

    本文标题:简简单单spring-boot整合RabbitMQ

    本文链接:https://www.haomeiwen.com/subject/csxggxtx.html