🌟项目创建
1.进入网址springboot项目创建
2.创建项目,选择相关信息,注意JDK选择8版本。这里依赖添加RabbitMQ和Spring Web。图中漏了Spring Web。
3.生成压缩包并解压,使用IDEA打开。
🌟POM文件
如果是在原有项目上整合,引入以下依赖即可。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit-test</artifactId> <scope>test</scope> </dependency>
🌟配置文件修改
#整合rabbitmq spring.rabbitmq.host=192.168.124.23 spring.rabbitmq.port=5672 spring.rabbitmq.virtual-host= /dev spring.rabbitmq.username=admin spring.rabbitmq.password=password
🌟测试是否整合成功
测试用例编写,发送消息。
@Autowired RabbitTemplate rabbitTemplate; @Test void contextLoads() { rabbitTemplate.convertAndSend("生产消息"); }
通过登录web管控台,可以看出有消息的发送和消费过程。rabbitmq消息默认是自动确认的。
🌟RabbitTemplate常用API
- 发送消息:
- convertAndSend(String exchange, String routingKey, Object message):将消息发送到指定的交换机和路由键。
- convertAndSend(String exchange, String routingKey, Object message, MessagePostProcessor messagePostProcessor):在发送消息之前对消息进行后处理。
- convertAndSend(String exchange, String routingKey, Object message, CorrelationData correlationData):将消息发送到指定的交换机和路由键,并关联一个 correlationData。
- send(String exchange, String routingKey, Message message):发送原始的 AMQP 消息对象。
- 接收消息:
- receive(String queueName):从指定队列接收消息,并在没有消息时立即返回 null。
- receiveAndConvert(String queueName):从指定队列接收消息,并将消息转换为指定类型的对象。
- basicConsume(String queue, ChannelAwareMessageListener listener):基于底层的 Channel 消费队列中的消息,并使用指定的监听器处理接收到的消息。
- 手动确认:
- basicAck(long deliveryTag, boolean multiple):手动确认消息的接收。将 deliveryTag 对应的消息标记为已确认。如果 multiple 为 true,则确认所有小于等于 deliveryTag 的消息。
- basicNack(long deliveryTag, boolean multiple, boolean requeue):手动否认消息的接收。将 deliveryTag 对应的消息标记为未确认,可以选择是否将消息重新放回队列。
- basicReject(long deliveryTag, boolean requeue):手动拒绝消息的接收。将 deliveryTag 对应的消息标记为未确认,并选择是否将消息重新放回队列。
- 消息可靠机制:
- setCorrelationKey(Message message, byte[] correlationKey):设置消息的关联键(correlation key)。
- setReturnCallback(ReturnCallback returnCallback):设置消息发送失败时的回调函数。
- setConfirmCallback(ConfirmCallback confirmCallback):设置消息发送确认的回调函数。
🌟写在最后
有关于SpringBoot整合RabbitMQ图文过程以及RabbitTemplate常用API介绍到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。