spring-boot-starter-amqp的代码案例
时间: 2023-07-09 09:32:58 浏览: 59
以下是一个使用spring-boot-starter-amqp实现简单消息队列的代码示例:
1. 首先,在pom.xml中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
```
2. 创建一个消息发送者类:
```
@Component
public class MessageSender {
@Autowired
private AmqpTemplate amqpTemplate;
public void sendMessage(String exchangeName, String routingKey, Object message) {
amqpTemplate.convertAndSend(exchangeName, routingKey, message);
}
}
```
3. 创建一个消息接收者类:
```
@Component
public class MessageReceiver {
@RabbitListener(queues = "myQueue")
public void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
}
```
4. 在application.properties中添加以下配置:
```
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
```
5. 在启动类上添加@EnableRabbit注解:
```
@SpringBootApplication
@EnableRabbit
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
```
6. 在需要发送消息的地方调用MessageSender的sendMessage方法:
```
@Autowired
private MessageSender messageSender;
...
messageSender.sendMessage("myExchange", "myRoutingKey", "Hello, World!");
```
这样,当程序运行时,会先创建一个名为"myQueue"的队列,并将其绑定到名为"myExchange"的交换机上。然后,当调用MessageSender的sendMessage方法时,会将一条消息发送到"myExchange"交换机,并通过"myRoutingKey"路由到"myQueue"队列。最后,MessageReceiver会监听"myQueue"队列,并在接收到消息时打印它。