黑马程序员springboot集成rabbitmq
时间: 2024-12-31 13:36:16 浏览: 17
### Spring Boot 整合 RabbitMQ 示例教程
#### 创建Spring Boot项目并引入依赖项
为了使Spring Boot应用能够与RabbitMQ协同工作,需在`pom.xml`文件中加入必要的依赖库。这通常涉及到添加`spring-boot-starter-amqp`作为构建工具的一部分,该starter包含了操作AMQP协议所需的一切组件。
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
```
此配置使得开发者可以轻松利用Spring AMQP抽象层来发送和接收消息[^1]。
#### 配置RabbitMQ连接属性
接着,在`application.properties`或`application.yml`文件里定义好访问RabbitMQ服务器的相关参数:
对于`.properties`文件:
```properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
```
而对于`.yml`格式,则如下所示:
```yaml
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
```
这些设置指定了目标主机地址、端口号以及认证凭证等基本信息。
#### 编写生产者代码片段
创建一个新的Java类命名为`MessageProducer.java`,用来模拟向队列推送消息的行为。这里采用的是最基础的方式——直接指定交换机名称及其绑定键(如果适用),并通过调用模板方法完成实际的数据传输过程。
```java
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MessageProducer {
private final AmqpTemplate amqpTemplate;
@Autowired
public MessageProducer(AmqpTemplate amqpTemplate) {
this.amqpTemplate = amqpTemplate;
}
public void sendMessage(String queueName, String message){
System.out.println("Sending message...");
amqpTemplate.convertAndSend(queueName,message);
System.out.println("Message sent!");
}
}
```
上述代码展示了如何借助于`AmqpTemplate`接口实例执行异步通信任务;每当有新消息待发时只需简单地调用对应的方法即可[^2]。
#### 实现消费者逻辑处理部分
同样地,还需准备另一个名为`MessageConsumer.java`的服务组件负责监听特定主题下的所有入站通知事件,并据此采取适当的动作响应之。此处的关键在于声明一个带有`@RabbitListener`注解的方法签名,从而允许框架自动注册相应的回调处理器对象至内部容器之中等待触发时机的到来。
```java
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class MessageConsumer {
@RabbitListener(queues = "testQueue")
public void receiveMessage(String message){
System.out.println("Received message : "+message);
}
}
```
一旦接收到匹配的消息后就会立即激活关联的业务流程,进而实现跨进程间的信息共享机制。
#### 启动应用程序验证效果
最后一步就是确保整个环境搭建完毕之后能正常运作无误。为此可参照先前给出的应用入口程序结构编写测试案例来进行初步的功能检验。当一切顺利的话应该可以看到控制台输出有关收发动作的日志记录证明方案可行有效[^3]。
阅读全文