一:序
通过《RabbitMQ详解(上)》一文中,我们可以知道RabbitMQ的一些基本的原生用法,如交换机的创建及消息的投递,但是在企业中我们大部分都是把RabbitMQ集成到SpringBoot中的,所以原生的方式我们则不怎么使用到,下面我将和大家一起走入SpringBoot整合RabbitMQ的世界。
下面全部案例代码:UseSpringBootIntegrateRabbitMQ
二:一个简单的案例
为了不那么麻烦,我就以一个SpringBoot来处理消息的发送和接收;通过Postman发送请求到Controller,再由Controller调用生产者,生产者把消息推送到Brock(交换机),再由交换机具体路由到指定队列,然后由指定的消费者监听队列获取消息;这就是一个我要实现的完整流程,以直接交换机来举例。
如下是SpringBoot整合RabbitMQ的基本案例,实现直接交换机模式,具体流程如上图:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!--注意:spring-boot-starter-parent版本若达到3.0.0 则只支持JDK17,而2.7.10是支持JDK8的最后一个版本--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.10</version> </parent> <groupId>cn.xw</groupId> <artifactId>HelloWorld</artifactId> <version>0.0.1-SNAPSHOT</version> <name>HelloWorld</name> <description>HelloWorld</description> <dependencies> <!--Spring Boot的核心启动器,包含了自动配置、日志和YAML--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <!--去掉logback配置,要不然冲突--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 引入SpringBoot的log4j2依赖启动坐标;这坐标包含具体的log4j2的坐标和连接Slf4j的适配器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!--SpringBootWeb启动依赖坐标--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--RabbitMQ启动依赖坐标--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!-- JSON格式化坐标--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.26</version> </dependency> <!--Lombok坐标导入--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.26</version> <scope>provided</scope> </dependency> <!-- RabbitMQ测试坐标 --> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit-test</artifactId> <version>3.0.3</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!--配置maven编译版本--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source><!--源代码使用的JDK--> <target>1.8</target><!--target需要生成的目标class文件的编译版本--> <encoding>UTF-8</encoding><!--字符集编码,防止中文乱码--> <failOnError>true</failOnError><!--指示即使存在编译错误,构建是否仍将继续--> <failOnWarning>false</failOnWarning><!--指示即使存在编译警告,构建是否仍将继续--> <showDeprecation>false</showDeprecation><!--设置是否显示使用不推荐API的源位置--> <showWarnings>false</showWarnings><!--设为true若要显示编译警告,请执行以下操作--> <meminitial>128M</meminitial><!--编译器使用的初始化内存--> <maxmem>512M</maxmem><!--编译器使用的最大内存--> </configuration> </plugin> </plugins> </build> </project>
05-04 05:00