您好,欢迎访问一九零五行业门户网

SpringBoot整合消息队列RabbitMQ的方法是什么

简介在spring项目中,可以使用spring-rabbit去操作rabbitmq
尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用rabbittemplate发送消息,使用注解接收消息。
一般在开发过程中:
生产者工程:
application.yml文件配置rabbitmq相关信息;
在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定
注入rabbittemplate对象,通过rabbittemplate对象发送消息到交换机
消费者工程:
application.yml文件配置rabbitmq相关信息
创建消息处理类,用于接收队列中的消息并进行处理
生产端1. 创建生产者springboot工程(maven)
2. 引入start,依赖坐标
b4b38e33757a6497aa8690936b905cc1
                05a8acc5c31084a4f61ade01873802caorg.springframework.boot192ca2f7b8c770b01c8f81e6bdd5b947
                9bc4cbb67f66e148869423c0d27e5f90spring-boot-starter-amqpb68fb17cb904a46b73e6272850323873
     09a0e22e5aaafd848ae04665be625b91
3. 编写yml配置,基本信息配置
4. 定义交换机,队列以及绑定关系的配置类
5. 注入rabbittemplate,调用方法,完成消息发送
添加依赖修改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> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.1.4.release</version> </parent> <groupid>com.itheima</groupid> <artifactid>springboot-rabbitmq-producer</artifactid> <version>1.0-snapshot</version> <dependencies> <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> </dependency> </dependencies></project>
启动类package com.itheima.rabbitmq;import org.springframework.boot.springapplication;import org.springframework.boot.autoconfigure.springbootapplication;@springbootapplicationpublic class producerapplication { public static void main(string[] args) { springapplication.run(producerapplication.class); }}
配置rabbitmq配置文件创建application.yml,内容如下:
spring:
rabbitmq:
host: localhost
port: 5672
virtual-host: /itcast
username: heima
password: heima
绑定交换机和队列创建rabbitmq队列与交换机绑定的配置类com.itheima.rabbitmq.config.rabbitmqconfig
package com.itheima.rahhitmq.config;import org.springframework.amqp.core.*;import org.springframework.beans.factory.annotation.qualifier;import org.springframework.context.annotation.bean;import org.springframework.context.annotation.configuration;@configuration /// 配置类public class rabbitmqconfig { public static final string exchage_name = "boot_topic_exchange"; public static final string queue_name = "boot_queue"; // 交换机 @bean("bootexchange") public exchange bootexchange(){ // 构建交换机对象 return exchangebuilder.topicexchange(exchage_name).durable(true).build(); } //queue 队列 @bean("bootqueue") public queue bootqueue(){ return queuebuilder.durable(queue_name).build(); } //队列和交换机的关系 binding /** * 1 知道那个队列 * 2 知道那个交换机 * 3 routingkey */ @bean public binding bindqueueexchange(@qualifier("bootqueue") queue queue, @qualifier("bootexchange") exchange exchange){ return bindingbuilder.bind(queue).to(exchange).with("boot.#").noargs(); }}
搭建消费者工程创建工程生产端
1. 创建生产者springboot工程
2. 引入start,依赖坐标
org.springframework.boot
spring-boot-starter-amqp
编写yml配置,基本信息配置
定义交换机,队列以及绑定关系的配置类
注入rabbittemplate,调用方法,完成消息发送
添加依赖修改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> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.1.4.release</version> </parent> <groupid>com.itheima</groupid> <artifactid>springboot-rabbitmq-consumer</artifactid> <version>1.0-snapshot</version> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-amqp</artifactid> </dependency> </dependencies></project>
启动类package com.itheima.rabbitmq;import org.springframework.boot.springapplication;import org.springframework.boot.autoconfigure.springbootapplication;@springbootapplicationpublic class consumerapplication { public static void main(string[] args) { springapplication.run(consumerapplication.class); }}
配置rabbitmq创建application.yml,内容如下:
spring:
rabbitmq:
host: localhost
port: 5672
virtual-host: /itcast
username: heima
password: heima
消息监听处理类编写消息监听器com.itheima.rabbitmq.listener.mylistener
package com.itheima.rabbitmq.listener;import org.springframework.amqp.rabbit.annotation.rabbitlistener;import org.springframework.stereotype.component;@componentpublic class mylistener { /** * 监听某个队列的消息 * @param message 接收到的消息 */ @rabbitlistener(queues = "item_queue") public void mylistener1(string message){ system.out.println("消费者接收到的消息为:" + message); }}
测试在生产者工程springboot-rabbitmq-producer中创建测试类,发送消息:
package com.itheima.rabbitmq;import com.itheima.rabbitmq.config.rabbitmqconfig;import org.junit.test;import org.junit.runner.runwith;import org.springframework.amqp.rabbit.core.rabbittemplate;import org.springframework.beans.factory.annotation.autowired;import org.springframework.boot.test.context.springboottest;import org.springframework.test.context.junit4.springrunner;@runwith(springrunner.class)@springboottestpublic class rabbitmqtest { @autowired private rabbittemplate rabbittemplate; @test public void test(){ rabbittemplate.convertandsend(rabbitmqconfig.item_topic_exchange, "item.insert", "商品新增,routing key 为item.insert"); rabbittemplate.convertandsend(rabbitmqconfig.item_topic_exchange, "item.update", "商品修改,routing key 为item.update"); rabbittemplate.convertandsend(rabbitmqconfig.item_topic_exchange, "item.delete", "商品删除,routing key 为item.delete"); }}
先运行上述测试程序(交换机和队列才能先被声明和绑定),然后启动消费者;在消费者工程springboot-rabbitmq-consumer中控制台查看是否接收到对应消息。
springboot提供了快速整合rabbitmq的方式
基本信息再yml中配置,队列交互机以及绑定关系在配置类中使用bean的方式配置
生产端直接注入rabbittemplate完成消息发送
消费端直接使用@rabbitlistener完成消息接收
以上就是springboot整合消息队列rabbitmq的方法是什么的详细内容。
其它类似信息

推荐信息