簡簡單單spring-boot整合RabbitMQ

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的過程

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容