springboot 发送rabbitmq消息
时间: 2023-07-24 10:13:50 浏览: 127
在 Spring Boot 中发送 RabbitMQ 消息,你可以按照以下步骤进行操作:
1. 添加 RabbitMQ 依赖:
在 `pom.xml` 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
```
2. 配置 RabbitMQ 连接信息:
在 `application.properties` 或 `application.yml` 文件中配置 RabbitMQ 的连接信息,例如:
```properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
```
3. 创建消息发送者:
创建一个消息发送者类,可以使用 `RabbitTemplate` 来发送消息。例如:
```java
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MessageSender {
private final RabbitTemplate rabbitTemplate;
private final Queue queue;
@Autowired
public MessageSender(RabbitTemplate rabbitTemplate, Queue queue) {
this.rabbitTemplate = rabbitTemplate;
this.queue = queue;
}
public void sendMessage(String message) {
rabbitTemplate.convertAndSend(queue.getName(), message);
System.out.println("Message sent: " + message);
}
}
```
4. 定义队列:
在配置类中定义一个队列,例如:
```java
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitMQConfig {
@Bean
public Queue queue() {
return new Queue("myQueue");
}
}
```
5. 发送消息:
在需要发送消息的地方,注入 `MessageSender` 并调用 `sendMessage` 方法发送消息。例如:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
private MessageSender messageSender;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) {
messageSender.sendMessage("Hello RabbitMQ!");
}
}
```
以上是一个简单的示例,你可以根据自己的需求进行扩展和修改。记得在消费者端配置相应的队列和监听器来接收消息。
阅读全文