Springboot集成RabbitMQ

来源:互联网 发布:手机mac修改器怎么用 编辑:程序博客网 时间:2024/05/16 19:33

最终实现效果如下,每三秒打印消息。
这里写图片描述

首先打开IDEA,创建maven java project。
这里写图片描述

在pom.xml添加依赖,其完整源码如下。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.zhenqi</groupId>    <artifactId>springboot-rabbitmq</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>Springboot_RabbitMQ</name>    <description>Demo project for Spring Boot</description>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.4.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>        <java.version>1.7</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-amqp</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

而后在 Springboot启动类编辑以下代码。

package com.zhenqi.springboot.study;import org.springframework.amqp.core.Queue;import org.springframework.amqp.rabbit.annotation.RabbitHandler;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.Bean;import org.springframework.messaging.handler.annotation.Payload;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;import java.util.Date;@SpringBootApplication@EnableScheduling//启用任务调度.@RabbitListener(queues="study")//启用Rabbit队列监听study key.public class SpringbootRabbitMqApplication {    @Autowired    private RabbitTemplate rabbitTemplate;    @Scheduled(fixedDelay=3000)//3s执行1次此方法;    public void send(){        rabbitTemplate.convertAndSend("study","zhenqi");    }    @Bean    public Queue studyQueue(){        return new  Queue("study");    }    //接收到消息处理.    @RabbitHandler    public void onMessage(@Payload String study){        System.out.println(" >>> "+new Date() + ": " + study);    }    public static void main(String[] args) {        SpringApplication.run(SpringbootRabbitMqApplication.class, args);    }}

最后附上配置文件 application.properties。

spring.application.name=Springboot-Rabbitmqspring.rabbitmq.host=192.168.146.128spring.rabbitmq.port=5672spring.rabbitmq.username=openstackspring.rabbitmq.password=rabbitmq