SpringBoot整合RabbitMQ实战:发送接收、序列化与AmqpAdmin
106 浏览量
更新于2024-08-28
收藏 696KB PDF 举报
本文主要介绍了如何在SpringBoot项目中整合RabbitMQ,包括RabbitMQ的基本概念、依赖引入、配置设置、以及通过RabbitTemplate发送和接收消息的使用方法。
一、RabbitMQ简介
RabbitMQ是一款由LShift公司开发的开源消息队列系统,它基于Advanced Message Queuing Protocol (AMQP)标准实现。RabbitMQ以其高性能、健壮性和可扩展性闻名,由Erlang编程语言构建,保证了高稳定性和可靠性。
二、RabbitMQ的使用
1、引入依赖
在SpringBoot项目中整合RabbitMQ,首先需要在项目中添加相应的依赖。如果使用Spring Initializer创建项目,可以选择包含RabbitMQ的模块;若手动配置,可以将以下依赖添加到pom.xml文件中:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
```
2、配置连接信息
接着,在application.properties或application.yml文件中配置RabbitMQ服务器的相关信息,如主机地址、用户名、密码、端口和虚拟主机地址:
```properties
spring.rabbitmq.host=111.111.111.111
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.port=5672
spring.rabbitmq.virtual-host=/
```
SpringBoot会自动配置ConnectionFactory和RabbitTemplate,ConnectionFactory用于创建与RabbitMQ服务器的连接,RabbitTemplate则用于发送和接收消息。
3、RabbitTemplate的使用
RabbitTemplate是SpringBoot与RabbitMQ交互的核心工具,它提供了发送和接收消息的API。在需要操作消息的地方注入RabbitTemplate,例如:
```java
@Autowired
private RabbitTemplate rabbitTemplate;
```
- 发送消息:
- 单播模式(点对点):首先确定要使用的交换器和绑定的路由键。RabbitTemplate提供多种发送消息的方法,如使用`convertAndSend()`将对象自动序列化后发送:
```java
// 路由键,可以根据实际情况动态指定
String routingKey = "your-routing-key";
// 需要发送的对象
YourObject obj = new YourObject();
// 将对象发送到RabbitMQ
rabbitTemplate.convertAndSend(routingKey, obj);
```
- 接收消息:
- 可以通过实现`MessageListener`接口或使用`SimpleMessageListenerContainer`来接收消息。例如,创建一个消息监听器:
```java
@Component
public class MyMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
// 处理接收到的消息
YourObject obj = (YourObject) message.getBody();
// ...
}
}
```
并在配置类中注册监听器:
```java
@Configuration
public class RabbitConfig {
@Bean
public SimpleMessageListenerContainer container(RabbitTemplate rabbitTemplate, MyMessageListener listener) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(rabbitTemplate.getConnectionFactory());
container.setMessageListener(listener);
// 设置其他配置,如队列名称、消费者数量等
return container;
}
}
```
三、AmqpAdmin的使用
AmqpAdmin是RabbitMQ的管理组件,可以用来声明队列、交换器等。例如,创建一个队列:
```java
@Autowired
private AmqpAdmin amqpAdmin;
public void createQueue(String queueName) {
Queue queue = new Queue(queueName, true); // durable队列
amqpAdmin.declareQueue(queue);
}
```
总结,SpringBoot整合RabbitMQ主要涉及RabbitMQ的依赖引入、配置设置,以及通过RabbitTemplate和AmqpAdmin进行消息的发送、接收和管理。这种方式使得在SpringBoot应用中集成消息队列变得简单高效。
132 浏览量
2021-05-27 上传
2021-05-02 上传
2021-05-16 上传
2021-03-16 上传
2021-05-17 上传
2021-02-14 上传
2019-06-27 上传
weixin_38599545
- 粉丝: 7
- 资源: 935
最新资源
- blogemon:2015年9月23-24日
- VB教材管理系统设计(论文+源代码).rar
- Click button particle animation-crx插件
- 锐智科技
- craft-blitz:智能静态页面缓存,用于使用Craft CMS创建快速的站点
- zedgraphy,c#权限管理源码,c#
- SubFuns:用于列出指定 m 文件中的所有函数声明的命令行实用程序。-matlab开发
- Как играть в слоты Вулкан?-crx插件
- dephi+sqlserver2000题库与试卷生成系统.rar
- Neural_Network_Charity_Analysis
- Android应用源码之TextViewBackground.zip项目安卓应用源码下载
- 4minTestReactJSClient
- stro:stro是一个开源的跨平台MMORPG服务器。-开源
- GO2:为您经常使用的目录添加书签并快速更改它们。-matlab开发
- CreateFolderXml,c#图书管理系统源码,c#
- vb彩票销售管理系统(论文).rar